Lập trình điều khiển robot với scratch nguyễn hữu hưng dương lực (dịch và biên soạn)

86 813 2
Lập trình điều khiển robot với scratch   nguyễn hữu hưng  dương lực (dịch và biên soạn)

Đ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

yl a da t h ne rin pt Mục lục Lập trình robot với mBlock Giới thiệu Bài Chuột yêu táo Bài Hứng táo 11 Bài Thách thức số học 16 Bài Phỏng đoán 23 Bài Bảo vệ đảo 29 Bài Quét mã vạch 37 h ne t Bài Trò chơi nhịp điệu 43 Bài Video Ball 47 Bài Chạy ! Robot 53 rin Bài 10 Bậc thầy né tránh 59 Bài 11 Con đường thành công 65 pt Bài 12 Robot ngoan ngoãn 72 yl a Bài 13 Robot linh hoạt 76 da Bài 14 Nhà vô địch đua xe 79 Giới thiệu da yl a pt rin h ne t Các bạn trải nghiệm tương tác giới vật lý phần mềm thông qua sách Cuốn sách bao gồm phần: robot, bảng mạch mBlock (bạn tải phần mềm mBlock địa http://mblock.cc/download) mBlock phần mềm phát triển sở Scratch 2.0 Nó điều khiển bảng mạch robot thực chức tương ứng Dưới giao diện phần mềm mBlock: Khi mBlock bảng mạch kết nối với nhau, bạn điều khiển robot phần mềm mBlock Dưới bước để kêt nối mBlock với robot Cắm dây nối USB tới máy tính bảng mạch mở phần mềm mBlock chọn cổng COM Sau nhấn chuột, mục Connect chuyển thành “COM Conected” da yl a pt rin h ne t Cài đặt AdruinoDriver: chọn Connect  Install Adruino Drive sau nhấn Install để cài đặt Tìm số cổng COM cách nhấn chuột phải vào MyComputer ngồi Desktop, sau chọn Manager  Device Manager  Port(COM & LPT) Cập nhật (Update) Firmware: Bên danh mục Board chọn mBot ; Bên danh mục Connect chọn Update Firmware Tuy nhiên kết nối máy tính mBot dây cáp USB, hạn chế khoảng cách di chuyển robot, để robot di chuyển khoảng cách xa hơn, bạn kết nối module Bluetooth module 2.4G Bluetooth Mở Bluetooth máy tính (trong trường hợp cần trợ giúp, truy cập trang web www.daylaptrinh.net để nhận hỗ trợ trực tuyến) Ngắt kết nối mBlock với mBot: nhấn lên COM6 Chọn Connect  Bluetooth  Discover Khi danh sách Bluetooth lên, chọn Bluetooth tương ứng 2.4G Cắm module 2.4G máy tính Nhấn lên mục Connect -> 2.4G -> Connect để kết nối với robot rin Lưu ý: Dự án lưu tệp tin có định dạng sb2 h ne New: Tạo dự án Load Project: Mở dự án máy tính Save Project: Lưu dự án Save Project as: Lưu dự án dạng Import Image: thêm hình ảnh vào thư viện t Một số chức hay sử dụng Danh mục: da yl a pt Undelete: lấy lại đoạn khối lệnh xóa Hide stage layout: ẩn sân khấu Small stage layout: sân khấu nhỏ Turbo mode: chế độ chạy cực nhanh khối lệnh) Adruino mode: chuyển đổi Scripts mBlock vào chương trình Adruino tải lên bảng mạch Adruino để hoạt động offline Lựa chọn mục Extensions liên quan tới khối lệnh hiển thị nhóm lệnh lập trình cho Robots Adruino: hiển thị khối lệnh tương thích với druino Makeblock: khối lệnh tương thích với bảng mạch Communication: Cung cấp chức kết nối mạng Lan pt rin h ne t Những thành phần bảng mạch mBot: da yl a Chọn makeBlock danh mục extensions, bên nhóm lệnh Robots bạn thấy khối lệnh điều khiển bảng mạch Bài Chuột yêu táo Sử dụng bảng mạch để điều khiển chuột dự án máy tính tiến tới ăn táo Kiến thức lập trình: Học cách điều khiển đèn LED Học cách điều khiển âm còi báo hiệu da yl a pt rin h ne t Module điện tử Kiến thức bổ sung Khối lệnh Mơ tả Ví dụ h ne Đợi giây Số giây số nguyên số thập phân t Sự kiện bắt đầu kích hoạt chương trình Chức khối lệnh bắt đầu chương trình cờ xanh nhấn da yl a pt rin Chương trình đợi tới nút bấm Button robot nhấn Khối lệnh màu xanh thay bới khối lệnh lục giác khác Thiết lập màu đèn LED Dãy màu nằm khoảng từ - 255 Đèn tắt màu = Còi báo hiệu phát âm từ C2 - D8 khoảng thời gian định Cấu trúc lập trình Lưu đồ Cấu trúc lập trình Cấu trúc lập trình tuần tự: Bắt đầu Đoạn khối lệnh bắt đầu chạy từ khối lệnh đầu tiên, tất khối lệnh phía thực theo thứ tự Đó cấu trúc Khối lệnh A Khối lệnh B Biểu đồ bên phải cấu trúc t Kết thúc rin Lưu ý Khối lệnh C h ne Sau chương trình bắt đầu, thực khối lệnh A, B, C, cuối kết thúc đoạn khối lệnh Cấu trúc cách chạy chương trình pt Giá trị thiết lập khối lệnh thay đổi trạng thái thiết bị điện tử da yl a Thực hành Viết thứ tự chạy đoạn khối lệnh bên cạnh: Bắt đầu chương trình( Khi cờ xanh nhấn) Đèn LED bật lên giây Lập trình Trong chương trình, chuột muốn ăn táo, chương trình có đối tượng: Chuột Táo Khi chương trình bắt đầu, bảng mạch phát tiếng còi đợi tới bạn nhấn nút bảng mạch Khi nút nhấn, chuột di chuyển tới táo Khi chuột chạm vào táo, còi bảng mạch phát âm Chuột Điều khiển chuột di chuyển tới vị trí táo - Nhấn phím cách để bắt đầu chương trình - Chuột nhảy tới vị trí bắt đầu - Còi chạy âm C4 - Đợi 0.5 giây - Ngừng âm - Đợi tới Button nhấn - Chuột di chuyển tới vị trí táo Táo da yl a pt rin h ne t Sân khấu Mơ tả: Chuột di chuyển phía táo, chạm vào táo robot phát âm Còi kêu Chuột chạm vào Táo - Nhấn phím cách để bắt đầu chương trình - Đợi tới chạm vào chuột - Còi kêu âm C4 - Đợi 0.2 giây - Còi kêu âm F2 - Đợi 0.2 giây - Ngừng âm Bài tập Sử dụng Button mCore để thay đổi màu sắc cho đèn LED để thêm hiệu ứng cho đèn gồm màu: Tím, vàng trắng 10 Bài 12 Robot ngoan ngỗn Robot thơng minh biết lời Nó có thu tín hiệu hồng ngoại, điều khiến robot di chuyển từ xa thơng qua thu Trong học tìm hiểu cách để điều khiển robot thơng qua thu tín hiệu hồng ngoại Kiến thức lập trình Điều khiển robot điều khiển từ xa hồng ngoại Module điện tử Hình ảnh Chỉ dẫn t Tên h ne Truyền tín hiệu hồng ngoại mã hóa Tín hiệu nhận xử lý thu hồng ngoại robot Khối lệnh 72 da Kiến thức bổ sung yl a pt rin Điều khiển từ xa hồng ngoại Mô tả Ví dụ Nhận thơng tin nút bấm điều khiển từ xa hồng ngoại Ý tưởng lập trình Mơ tả ý tưởng Lưu đồ Bắt đầu Chương trình liên tục kiểm tra có nhận tín hiệu hồng ngoại tương ứng với nút muốn kiểm tra hay khơng Nếu thực cơng việc tương ứng, khơng tiếp tục kiểm tra Kiểm tra nút nhấn Sai Đúng yl a Thực hành pt rin h ne t Thực công việc tương ứng với nút nhấn da Sử dụng nút mũi tên để điều khiển robot di chuyển 73 Khối lệnh Mô tả Nhấn cờ xanh để chạy chương trình Chương trình liên tục kiểm tra tín hiệu nhận Nếu nhận tín hiệu nút mũi tên điều khiển rơt di chuyển tương ứng Nhận biết thơng tin phím điều khiển nhấn thực công việc tương ứng Lưu yl a pt rin h ne t Dùng vòng lặp để liên tục kiểm tra tín hiệu Bạn lập trình phím khác để thực cơng việc mong muốn, ví dụ nhấn phím A để chơi nhạc Lập trình Chúng ta sử dụng phím mũi tên điều khiển hồng ngoại để điều khiển robot di chuyển Tuy nhiên công việc thực phức tạp: Khi nhấn phím điều khiển, tín hiệu thu nhận thu hồng ngoại robot, sau truyền đến phần mềm mBlock máy vi tính thơng qua Bluetooth Sau xử lý tín hiệu, mBlock lại truyền tín hiệu điêu khiển động thông qua Bluetooth đến robot 74 Chúng ta rút ngắn trình cách nạp chương trình trực tiếp lên robot, robot khơng cần kết nối với máy tính Cho phép mã lệnh chương trình nạp lên xử lý robot Nhấn chuột phải chọn “Upload Arduino program” h ne t Sử dụng khối lệnh mBot Program nhóm Robots để thay khối lệnh Khi nhấn vào cờ xanh rin Nhấn nút “Upload to Arduino” da yl a pt Nạp mã lệnh lên robot Chú ý: Khi nạp mã lệnh Arduino program, robot cần kết nối với máy tính qua cáp USB Lưu ý Khi chương trình nạp thành cơng, điều khiển robot điều khiển hồng ngoại Nếu sử dụng số khối lệnh khơng phù hợp (ví dụ vẽ, in hình…) cửa sổ thơng báo khối lệnh Bài tập Lập trinh điều khiển còi đèn LED robot, sau nạp vào robot 75 Bài 13 Robot linh hoạt Robot học nhiều kỹ tránh vật cản, dò đường, xử lý tín hiệu hồng ngoại Trong học này, robot lập trình để có tất kỹ Kiến thức lập trình Nhấn phím A để chuyển sang chế độ điều khiển từ xa, sử dụng phím mũi tên để điều khiển robot tiến, lùi, quay Nếu phía trước 10cm có vật cản robot tự động quay Nếu nhấn nút điều khiển điều khiển hồng ngoại cảm biếnđường chạm vạch đen, chuyển sang chế độ dò đường Lưu đồ h ne Mô tả ý tưởng t Ý tưởng lập trình Định nghĩa khối lệnh control Cơng việc điều khiển thực lặp lại phím Setting nhấn cảm biếnđường phát đương màu đen yl a Đúng Kết thúc pt Sai Nút A nhấn Thực đoạn khối lệnh control da Chương trình nạp vào điều khiển robot Khi chạy, chương trình liên tục kiểm tra phím A có nhấn hay khơng Nếu nhấn cơng việc điều khiển thực Bắt đầu rin Bắt đầu Đúng Nút Setting nhấn robot khỏi đường đen Sai Đúng Nút mũi tên lên nhấn Sai Nút mũi tên Đúng xuống nhấn Lùi Sai Đúng Nút mũi tên phải nhấn Quay phải Sai Đúng Nút mũi tên trái nhấn Sai 76 Đi thẳng Quay trái Thực hành Chương trình nạp vào robot để robot chạy mà khơng cần kết nối với máy tính Trong vòng lặp, chương trình kiểm tra nút A điều khiển hồng ngoại nhấn thực đoạn cơng việc điều khiển h ne t Chương trình cần phải chạy bên vòng lặp Định nghĩa khối lệnh điêu khiển thực công việc điều khiển da yl a pt rin Kiểm tra nút A nhấn 77 Định nghĩa khối lệnh “control” Mỗi phím điều khiển hồng ngoại tương ứng với hướng di chuyển khác yl a pt rin h ne t Lặp lại nút “Setting” nhấn cảm biếnđường gặp vạch đen da Công việc điều khiển lặp lại nút Setting nhấn cảm biếnđường tìm thấy đường Trong vong lặp chương trình xác định nút nhấn kiểm tra 10cm phía trước có vật cản hay khơng Nếu phía trước 10cm có vật cản, đèn LED chuyển màu xanh robot đổi hướng Bài tập Lập trình để nhấn phím B điều khiển hồng ngoại, robot chuyển sang chế độ dò đường 78 Bài 14 Nhà vô địch đua xe Cùng tổ chức thi, bạn sử dụng robot để tham gia thi đấu Hãy xem robot lập trình cho robot xa Kiến thức lập trình Tải chương trình điều khiển lên robot hoàn thành đua Kiến thức bổ sung Khối lệnh Mơ tả Ví dụ h ne t Nhấn chuột phải vào khối lệnh pt rin Tải chương trình vào robot da yl a Sử dụng hàm thời gian Điều chỉnh hướng tốc độ Chọn “Upload Arduino Program” Timer hàm có sẵn mạch Arduino, tương đương với biến timer mBlock Điều khiển hướng tốc độ quay động 79 Ý tưởng lập trình Mơ tả ý tưởng Lưu đồ Bắt đầu Qng đường robot di chuyển tỉ lệ thuận với số lần nút bảng mạch nhấn Đặt count = Đặt lại thời gian Sai Thời gian > 60 Các bước: Sai Nút bảng Đúng mạch nhấn Tăng count thêm Đúng Khởi tạo trạng thái giá trị ban đầu Đợi đến nút bảng mạch nhấn Tiến phía trước Khi đèn xanh sáng, đưa robot đến vạch xuất phát Nhấn nút thêm lần để robot bắt đầu di chuyển kết thúc rin Đợi với số giây giá trị biến count h ne t Ghi lại số lần nút nhấn 10 giây yl a pt Dừng động Thực hành da Kết thúc Khối lệnh Khởi tạo giá trị cho biến Mô tả Biến count ghi lại số lần nút nhấn Nếu khơng đặt lại giá trị biến nhấn giá trị từ lần chạy trước Đặt lại thời gian 80 Đếm số lần nút nhấn 10 giây Vòng lặp kết thúc thời gian chạy 10 giây Ghi lại số lần nút nhấn Hết 10 giây, đèn xanh bật Nhấn nút lần để robot bắt đầu di chuyển yl a pt rin h ne t Đợi nút nhấn lần Số lần nút nhấn nhiều, thời gian di chuyển lâu da Đoạn khối lệnh mã lệnh hoàn chỉnh #include #include #include #include MeDCMotor motor_9(9); MeDCMotor motor_10(10); void move(int direction, int speed) { int leftSpeed = 0; int rightSpeed = 0; if(direction == 1){ leftSpeed = speed; rightSpeed = speed; }else if(direction == 2){ leftSpeed = -speed; rightSpeed = speed; 81 }else if(direction == 3){ leftSpeed = -speed; rightSpeed = speed; }else if(direction == 4){ leftSpeed = speed; rightSpeed = speed; h ne t } motor_9.run((9)==M1?(leftSpeed):(leftSpeed)); motor_10.run((10)==M1?(rightSpeed):(rightSpeed)); } double angle_rad = PI/180.0; double angle_deg = 180.0/PI; double count; MeBuzzer buzzer; double currentTime = 0; double lastTime = 0; double getLastTime(){ return currentTime = millis()/1000.0 - lastTime; } MeRGBLed rgbled_7(7, 7==7?2:4); da yl a pt rin void setup(){ _delay(3); buzzer.tone(1047, 500); delay(20); count = 0; lastTime = millis()/1000.0; pinMode(A7,INPUT); while(!((getLastTime()) > (10))) { _loop(); if((0^(analogRead(A7)>10?0:1))){ count += 1; while(!((1^(analogRead(A7)>10?0:1) ))) { _loop(); } } } buzzer.tone(262, 500); delay(20); rgbled_7.setColor(0,0,60,0); rgbled_7.show(); while(!((0^(analogRead(A7)>10?0:1) ))) 82 { _loop(); } move(1,100); _delay(count); move(1,0); rgbled_7.setColor(0,0,0,0); rgbled_7.show(); } void loop(){ _loop(); } h ne t void _delay(float seconds){ long endTime = millis() + seconds * 1000; while(millis() < endTime)_loop(); } rin void _loop(){ } da yl a pt Nhấn nút “Upload to Adruino” để nạp mã lệnh vào robot 83 Thay đổi khoảng cách di chuyển giây Thay đổi thời gian đợi chương trình Thay đổi thời gian đợi theo dõi thay đổi h ne t Thay đổi tốc độ robot Thay đổi tốc độ động Cài đặt da Lập trình yl a pt rin Thay đổi tốc độ cách thay đổi số khối lệnh Xác định số lần nút bảng mạch nhấn 84 Khối lệnh điều chỉnh tốc độ Thay đổi tốc độ động robot Thay đổi tốc độ Lập trình Thay đổi tốc độ động để robot di chuyển theo đường cong rin h ne t Di chuyển theo đường cong pt Bài tập da yl a Lập trình xử lý trường hợp đường di chuyển có vật cản 85 86 yl a da t h ne rin pt ... bên nhóm lệnh Robots bạn thấy khối lệnh điều khiển bảng mạch Bài Chuột yêu táo Sử dụng bảng mạch để điều khiển chuột dự án máy tính tiến tới ăn táo Kiến thức lập trình: Học cách điều khiển đèn LED... trúc học, lập trình cho chuột thu thật nhiều táo Thơng qua kiến thức vòng lặp, lập trình để điều khiển di chuyển chuột thông qua cảm biến siêu âm 13 Khi chuột di chuyển phía trước chạm vào táo,... tắt màu = Còi báo hiệu phát âm từ C2 - D8 khoảng thời gian định Cấu trúc lập trình Lưu đồ Cấu trúc lập trình Cấu trúc lập trình tuần tự: Bắt đầu Đoạn khối lệnh bắt đầu chạy từ khối lệnh đầu tiên,

Ngày đăng: 16/11/2018, 12:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan