Skip to main content

Lập trình truyền động tiến và lùi - Python

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Phác thảo hoạt động

Khám phá này sẽ giới thiệu cho sinh viên những hành vi lập trình cơ bản về tiến, lùi và chờ. Những kỹ năng cơ bản này sẽ giúp các em thành công trong hoạt động tiếp theo và trong Thử thách Strike vào cuối Phòng thí nghiệm STEM này, khi các em sẽ thi đấu bowling bằng cách sử dụng Speedbot.

Sử dụng dự án mẫu V5 Speedbot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển) cho phép học sinh lập trình để Speedbot di chuyển về phía trước chỉ bằng một hướng dẫn.

Speedbot đã sẵn sàng di chuyển! 

Khám phá này sẽ cung cấp cho bạn các công cụ để có thể lập trình Speedbot của bạn cho các chuyển động đơn giản. Khi kết thúc hoạt động này, bạn sẽ tham gia vào Thử thách khoan bóng rổ bằng cách sử dụng các hành vi tiến, lùi và chờ đợi.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên

Sau đây là tổng quan về Giao diện người dùng của VEXcode V5. Học sinh sẽ được giới thiệu về các tab/nút này trong các hoạt động tại Phòng thí nghiệm STEM Momentum Alley. Các liên kết cũng được cung cấp trong Phòng thí nghiệm STEM để cung cấp thêm thông tin về các tab/nút này.

Giao diện VEXcode V5.
 

  • Hướng dẫn Python VEXcode V5 sẽ được sử dụng trong thăm dò này:
    • drivetrain.drive_for(CHUYỂN TIẾP, 200, MM)
    • chờ(1.000 giây)
  • Để tìm hiểu thêm thông tin về hướng dẫn, hãy chọn Trợ giúp và sau đó chọn biểu tượng dấu hỏi bên cạnh lệnh để xem thêm thông tin.

    VEXcode V5 có ổ đĩa cho lệnh được nhập trong không gian làm việc và biểu tượng Dấu hỏi ở ngoài cùng bên phải được đánh dấu để mở Trợ giúp. Trợ giúp hiển thị định nghĩa về lệnh và thông tin về cách sử dụng lệnh.

     

  • Đảm bảo bạn đã tải xuống phần cứng cần thiết, sổ ghi chép kỹ thuật và VEXcode V5 và sẵn sàng.

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

Nếu đây là lần đầu tiên học viên sử dụng VEXcode V5, họ có thể tham khảo Hướng dẫn bất kỳ lúc nào trong quá trình khám phá này.

Thanh công cụ VEXcode V5 có phần Hướng dẫn được đánh dấu trong hộp màu đỏ. Thanh công cụ hiển thị, từ trái sang phải, logo V5, biểu tượng quả địa cầu, Tệp và Hướng dẫn. Bên phải phần Hướng dẫn là các biểu tượng và chức năng bổ sung.

Vật liệu cần thiết:
Số lượng Vật liệu cần thiết
1

Robot Speedbot

1

Pin Robot đã sạc

1

VEXcode V5

1

Cáp USB (nếu sử dụng máy tính)

1

Sổ tay kỹ thuật

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

Làm mẫu từng bước khắc phục sự cố cho học sinh.

Bước 1: Chuẩn bị cho cuộc khám phá

Trước khi bắt đầu hoạt động, bạn đã chuẩn bị sẵn từng mục này chưa? Kiểm tra từng điều sau đây:

Bước 2: Bắt đầu một dự án mới

Hoàn thành các bước sau để bắt đầu dự án:

  • Mở menu Tệp và chọn Mở Ví dụ.

    Thanh công cụ VEXcode V5 với menu Tệp mở và Mở Ví dụ được đánh dấu trong hộp màu đỏ. Open Examples là mục menu thứ tư bên dưới New Blocks Project, New Text Project và Open.

     

  • Chọn và mở dự án mẫu Speedbot (Drivetrain 2-motor, No Gyro). Dự án mẫu chứa cấu hình động cơcủa Speedbot. Nếu mẫu không được sử dụng, robot của bạn sẽ không chạy dự án một cách chính xác.

    Menu 'Dự án mẫu' đang mở, với danh mục 'Mẫu' được chọn. Dự án Speedbot (Drivetrain 2-motor, No Gyro) được đánh dấu bằng một ô màu đỏ, cho biết dự án nào cần chọn và mở.

     

  • Vì bạn sẽ phải di chuyển Speedbot về phía trước và phía sau nên bạn sẽ đặt tên cho dự án của mìnhDrive. Chọn Tên dự án, nhập 'Ổ đĩa'rồi chọn 'Lưu'.Menu thả xuống đổi tên được mở từ nút Tên dự án trên thanh công cụ VEXcode V5. Dự án đang được đổi tên thành 'Drive'.

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

  • Tên dự án có thể có khoảng cách giữa hoặc sau các từ.

    Đổi tên V5

  • Bạn có thể yêu cầu học sinh thêm chữ cái đầu hoặc tên nhóm của mình vào tên dự án. Điều này sẽ giúp phân biệt các dự án nếu bạn yêu cầu học sinh nộp chúng.

  • Vì đây là hoạt động lập trình đầu tiên mà học sinh của bạn có thể thử, bạn nên làm mẫu các bước, sau đó yêu cầu học sinh thực hiện các hành động tương tự. Sau đó, giáo viên nên theo dõi học sinh để đảm bảo rằng các em đang thực hiện đúng các bước.

  • Đảm bảo rằng học sinh đã chọn Mở ví dụ từ menu Tệp.

  • Đảm bảo rằng học sinh đã chọn dự án mẫu Speedbot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển).

  • Bạn có thể chỉ cho học sinh biết rằng có một số lựa chọn để chọn trên trang Ví dụ. Khi xây dựng và sử dụng các robot khác, trẻ sẽ có cơ hội sử dụng các mẫu khác nhau.

  • Kiểm tra để đảm bảo tên dự ánDrivehiện nằm trong cửa sổ ở giữa thanh công cụ.

    Tên dự án trên thanh công cụ đọc Drive và Slot 1 được chọn.

     

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Lưu dự án

  • Chỉ ra rằng khi họ mở VEXcode V5 lần đầu, cửa sổ được gắn nhãn là VEXcode Project. VEXcode Project là tên dự án mặc định khi VEXcode V5 được mở lần đầu tiên. Sau khi dự án được đổi tên từ Drive và lưu, màn hình sẽ được cập nhật để hiển thị tên dự án mới. Sử dụng cửa sổ này trên thanh công cụ, bạn có thể dễ dàng kiểm tra xem học sinh có đang sử dụng đúng dự án hay không.

  • Nói với học sinh rằng bây giờ các em đã sẵn sàng bắt đầu dự án đầu tiên của mình. Giải thích cho học sinh rằng chỉ cần làm theo một vài bước đơn giản, các em sẽ có thể tạo và chạy một dự án giúp Speedbot phát triển.

  • Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. Các phần Python từ Thư viện VEX giải thích các phương pháp lưu trong VEXcode V5.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Dừng lại và thảo luận

Đây là thời điểm thích hợp để dừng lại và yêu cầu học sinh xem lại các bước vừa hoàn thành khi bắt đầu một dự án mới trong VEXcode V5 theo cá nhân hoặc theo nhóm. Yêu cầu học sinh suy nghĩ riêng trước khi chia sẻ trong nhóm hoặc trước cả lớp.
 

Bước 3: Tiến về phía trước

Bây giờ bạn đã sẵn sàng để bắt đầu lập trình robot để tiến về phía trước!

  • Trước khi bắt đầu lập trình, chúng ta cần hiểu hướng dẫn là gì. Có ba phần trong một hướng dẫn. Để biết thêm thông tin về cách tô màu mã trong VEXcode V5 Python, xem bài viết này.

    Ảnh chụp màn hình đoạn mã C++ trong VEXcode, có chú thích. Lệnh drivetrain.driveFor (CHUYỂN TIẾP, 200, MM) được đánh dấu bằng các đường viền màu đỏ xung quanh hệ thống truyền động (được gắn nhãn là Thiết bị); lái xe cho (được gắn nhãn là Lệnh); và CHUYỂN TIẾP, 200, MM (được gắn nhãn là Thông số)

  • Thêm hướng dẫn vào dự án, để dự án của bạn trông như thế này:

    # Thư viện nhập
    từ nhập vex *
    
    # Bắt đầu mã dự
    
    ándrivetrain.drive_for (FORWARD, 100, MM)

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

Bạn có thể nhận thấy chức năng tự động hoàn thành khi bạn bắt đầu nhập hướng dẫn. Sử dụng phím “Lên” và “Xuống” để chọn tên bạn muốn, sau đó nhấn “Tab” hoặc (Enter/Return) trên bàn phím để thực hiện lựa chọn. Để biết thêm thông tin về tính năng này, hãy xem bài viết Python. Tính năng tự động hoàn thành trong một dự án Python được hiển thị, với các tùy chọn bật lên trong menu bên phải lệnh được nhập trong không gian làm việc.
 

  • Chọn biểu tượng Slot để chọn một trong tám vị trí có sẵn trên Robot Brain và chọn vị trí 1.

    Lựa chọn vị trí trong Thanh công cụ VEXcode V5 đang mở và vị trí 1 được chọn và đánh dấu bằng một ô màu đỏ.

     

  • Kết nối Robot Brain V5 với máy tính bằng cáp micro USB và cấp nguồn cho Robot Brain V5. Biểu tượng Não trên thanh công cụchuyển sang màu xanh lákhi kết nối thành công.

    Biểu tượng não trong Thanh công cụ VEXcode V5 có màu xanh lá cây để hiển thị kết nối và được đánh dấu bằng một hộp màu đỏ. Biểu tượng não nằm ở bên phải thanh công cụ giữa Bộ điều khiển và Tải xuống.

     

  • ChọnTải xuốngđể tải dự án xuống Brain.

    Biểu tượng tải xuống trong Thanh công cụ được đánh dấu bằng hộp màu đỏ giữa biểu tượng Bộ não và các nút Chạy và STop.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên

Nhắc nhở học sinh ngắt kết nối cáp USB khỏi Robot Brain. Việc kết nối robot với máy tính trong khi chạy một dự án có thể khiến robot kéo cáp kết nối.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Dừng lại và thảo luận

Yêu cầu học sinh dự đoán những gì các em nghĩ sẽ xảy ra khi dự án này được tải xuống và chạy trên Speedbot. Yêu cầu học sinh ghi lại dự đoán của mình vào sổ tay kỹ thuật. Nếu có thời gian, hãy yêu cầu mỗi nhóm chia sẻ dự đoán của mình. 

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Mô hình đầu tiên

  • Làm mẫu chạy dự án trước lớp trước khi cho tất cả học sinh thử cùng một lúc. Tập hợp học sinh vào một khu vực và chừa đủ không gian để Speedbot có thể di chuyển nếu nó được đặt trên sàn.
  • Nói với học sinh rằng bây giờ đến lượt các em thực hiện dự án của mình. Hãy đảm bảo rằng chúng có đường đi thông thoáng và không có Speedbot nào đâm vào nhau.
     
  • Chạy (Python) dự án trên robot bằng cách đảm bảo dự án được chọn và sau đó nhấn nútChạytrên Robot Brain. Chúc mừng bạn đã tạo dự án đầu tiên!

    Màn hình V5 Brain với dự án Drive đang mở và nút Run được đánh dấu trong một hộp màu đỏ ở phía xa bên trái. Ở bên phải của Run là các nút cho Timed Run, Match và Wiring.

Bước 4: Lái xe lùi

Bây giờ bạn đã lập trình robot của mình để lái xe về phía trước, chúng ta hãy lập trình nó để bây giờ lái xe ngược lại.

  • Thay đổi tham số trong lệnh drive_for để hiển thị REVERSEthay vì FORWARD, do đó dự án của bạn trông như thế này:

    # Thư viện nhập
    từ nhập vex *
    
    # Bắt đầu mã dự án
    
    drivetrain.drive_for(ĐẢO NGƯỢC, 100, MM)
  • Chọn Tên dự án để thay đổi từDrivethànhReverse.

    Tên dự án đọc Đảo ngược trong Thanh công cụ và vị trí 1 được chọn.

  • Chọn biểu tượng Slot để chọn một slot mới. Chọn vị trí 2.

    Lựa chọn vị trí mở trong Thanh công cụ VEXcode V5 với vị trí 2 được chọn và được đánh dấu bằng một hộp màu đỏ.

  • Tải xuống (trongPython) dự án.

    Nút tải xuống trong Thanh công cụ VEXcode V5, được đánh dấu bằng một hộp màu đỏ giữa biểu tượng não màu xanh lá cây và các nút Chạy và Dừng.

  • Kiểm tra để đảm bảo dự án của bạn đã được tải xuống (trongPython) bằng cách nhìn vào màn hình Robot Brain. Tên dự ánReversephải được liệt kê ở Khe 2.

    V5 Brain Home Screen hiển thị dự án Reverse ở Khe 2, biểu tượng thứ hai từ bên trái ở hàng dưới cùng, bên cạnh dự án Drive ở Khe 1.

  • Chạy (trong Python) dự án trên robot bằng cách đảm bảo dự án được chọn, sau đó nhấn nútChạytrên Robot Brain.

    Màn hình não V5 với dự án Đảo ngược đang mở và nút Chạy được đánh dấu trong một hộp màu đỏ ở phía xa bên trái. Ở bên phải của Run là các nút cho Timed Run, Match và Wiring.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Hoàn thành Bước 4

  • Để thay đổi lệnh drive_for từ forward thành reverse, chỉ cần thay đổi tham số đầu tiên thành REVERSE. Điều này sẽ khiến các động cơ trong hệ thống truyền động di chuyển theo hướng ngược lại.
  • Số mm có thể thay đổi, nhưng trong ví dụ này chúng ta sẽ giữ nguyên ở mức 100 mm như đã thiết lập ở bước trước.
  • Nhắc nhở học sinh ngắt kết nối cáp USB khỏi Robot Brain trước khi chạy dự án.
  • Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. Các phần Python từ Thư viện VEX giải thích các phương pháp lưu trong VEXcode V5.
     

Bước 5: Chờ rồi lái xe lùi

Bây giờ chúng ta đã lập trình robot để lái xe về phía trước và sau đó ngược lại, bây giờ chúng ta có thể thêm một hướng dẫn chờ đợi để robot chờ một khoảng thời gian nhất định trước khi lái xe ngược lại.

  • Thêm hướng dẫn chờ trước lệnh drive_for. Hãy chắc chắn rằng thời gian chờ được thụt lề để khớp với lệnh drive_for và tất cả các lệnh đều nằm dưới nhận xét "Bắt đầu mã dự án". Điều này yêu cầu robot đợi ba giây trước khi lái xe ngược chiều.

    chờ(3, GIÂY)
    
    drivetrain.drive_for(ĐẢO NGƯỢC, 100, MM)
  • Chọn Tên Dự án để thay đổi nó từ Đảo ngược thành WaitReverse.

    Tên dự án đọc Chờ đảo ngược trong Thanh công cụ và Khe 2 được chọn.

  • Chọn biểu tượng Slot để chọn một slot mới. Chọn vị trí 3.

    Lựa chọn vị trí có ô màu đỏ làm nổi bật vị trí 3

  • Tải xuống (trongPython) dự án.

    Hình ảnh Thanh công cụ VEXcode V5 có hộp màu đỏ xung quanh biểu tượng Tải xuống

  • Kiểm tra để đảm bảo dự án của bạn đã được tải xuống (trong Python) bằng cách nhìn vào màn hình Robot Brain. Tên dự án WaitReverse nên được liệt kê trong Vùng 3.

    Màn hình chờ V5 Brain Home hiển thị dự án Wait Reverse ở khe 3, biểu tượng thứ ba ở hàng dưới cùng.

  • Chạy (trong Python) dự án trên robot bằng cách đảm bảo dự án được chọn, sau đó nhấn nútChạy.

    Màn hình V5 Brain với dự án Wait Reverse mở và nút Run được đánh dấu trong một hộp màu đỏ ở phía xa bên trái. Ở bên phải của Run là các nút cho Timed Run, Match và Wiring.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Hoàn thành Bước 5

  • Sử dụng lệnh wait sẽ không kết thúc dự án, nó chỉ tạm dừng chuyển động của robot.
  • Nếu học sinh sử dụng máy tính, hãy nhắc các em ngắt kết nối cáp USB khỏi Robot Brain trước khi chạy dự án.
  • Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. Phần Python từ Thư viện VEX giải thích các phương pháp lưu trong VEXcode V5.

Bước 6: Hoàn thành thử thách bài tập bóng rổ!

Thiết lập cho cuộc tập trận bóng rổ cho thấy bốn đường được đặt cách nhau với một đường bắt đầu ở bên trái và các đường cách nhau 10cm, 20cm và 40cm. Một Robot V5 đã sẵn sàng để bắt đầu với bánh trước của nó trên vạch xuất phát. Bố trí Cuộc tập trận
Bóng rổ Thách thức

Trong Thử thách khoan bóng rổ, robot phải có khả năng điều hướng một loạt các đường ở các khoảng cách khác nhau. Robot sẽ di chuyển về phía trước đến vạch đầu tiên cách vị trí bắt đầu 10 cm, chờ 1 giây và sau đó di chuyển ngược trở lại cùng vạch đó. Sau đó, robot sẽ lặp lại hành động bằng cách lái xe về phía trước 20 cm đến vạch thứ hai, chờ 1 giây và sau đó lái xe lùi về vạch xuất phát ban đầu. Robot sẽ lái xe về phía trước đến vạch thứ ba với khoảng cách 40 cm, chờ 1 giây, và cuối cùng trở về vạch xuất phát để hoàn thành thử thách.

Trước khi lập trình robot, hãy lên kế hoạch cho đường đi và hành vi của robot trong sổ ghi chép kỹ thuật của bạn.

Sau khi hoàn thành Thử thách bóng rổ, bạn sẽ có thể kết hợp các chuyển động tiến và lùi với các hành vi bổ sung của robot để hoàn thành các thử thách nâng cao hơn.
Hãy nhớ rằng khi lập trình 1 cm = 10 mm.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Dừng lại và thảo luận

Yêu cầu học sinh chia sẻ giải pháp của mình theo cặp trước khi thảo luận chung với cả lớp. Thúc đẩy cuộc thảo luận bằng cách hỏi: 

  • Bạn có gặp khó khăn gì khi lập trình thử thách này không?
  • Robot của bạn có hoạt động như bạn mong đợi dựa trên dự án của bạn không? Tại sao nên hoặc không nên? 
  • Nếu bạn có thể thực hiện lại thử thách, có điều gì bạn muốn làm khác đi không?

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Giải pháp

Xem giải pháp mẫu bên dưới: 

# Thư viện nhập
từ vex import *

# Bắt đầu mã dự án

# Tiến về phía trước 10cm
drivetrain.drive_for(FORWARD, 100, MM)
# Đợi 1 giây
wait(1, SECONDS)
# Lái xe trở lại vạch xuất phát
drivetrain.drive_for(REVERSE, 100, MM)

# Tiến về phía trước 20cm
drivetrain.drive_for(FORWARD, 200, MM)
# Đợi 1 giây
wait(1, SECONDS)
# Lái xe trở lại vạch xuất phát
drivetrain.drive_for(REVERSE, 200, MM)

# Tiến về phía trước 40cm
drivetrain.drive_for(FORWARD, 400, MM)
# Đợi 1 giây
wait(1, SECONDS)
# Lái xe trở lại vạch xuất phát
drivetrain.drive_for(REVERSE, 400, MM)