Lập trình mBot Mega với Raspberry Pi bằng Python

08/08/2024
Lập trình mBot Mega với Raspberry Pi bằng Python

Để sử dụng Raspberry Pi giao tiếp với mBot Mega cần đảm bảo điều khiển động cơ của nó và lấy dữ liệu đầu ra của các cảm biến. Trước tiên, bạn cần cập nhật chương trình cơ sở của mBot Mega trên mBlock 5 lên chương trình cơ sở trực tuyến, sau đó kết nối nó với Raspberry Pi.

Lập trình mBot Mega với Raspberry Pi bằng Python

Tiến hành kết nối mBot Mega với Raspberry Pi

Để biết chi tiết về cách cập nhật chương trình cơ sở, hãy xem Cập nhật chương trình cơ sở của mBot Mega.

Chuẩn bị Raspberry Pi

Sau đây là một số bước để kết nối thành công mBot Mega với Raspberry Pi:

1. Phương pháp kết nối đầu tiên: Phương pháp GPIO

Kết nối Raspberry Pi và MegaPi bằng cáp hoặc đầu nối cái 2,54 mm (xem hình ảnh để tham khảo)

Lập trình mBot Mega với Raspberry Pi bằng Python

Lập trình mBot Mega với Raspberry Pi bằng Python

Sử dụng cáp hoặc đầu nối cá 2,54mm để kết nối Raspberry Pi và MegaPi

Mẹo: Khi bạn kết nối Raspberry Pi và MegaPi bằng đầu nối cái 2,54mm, bạn chỉ cần một bộ pin để cấp nguồn cho cả hai.

Trước tiên, trong Raspberry Pi, hãy tắt lời nhắc đăng nhập từ Desktop > Menu > Preferences > Raspberry Pi Configuration.

Lập trình mBot Mega với Raspberry Pi bằng Python

Tiến hành tắt lời nhắc đăng nhập

  • Nếu bạn đang sử dụng Raspberry 3 B+, ​​vì chức năng Bluetooth chiếm cổng ttyAMA0, bạn có hai cách để giải quyết vấn đề này.

a. Vô hiệu hóa Bluetooth pi3 và khôi phục UART0/ttyAMA0 qua GPIO 14&15

b. Chuyển đổi chức năng Bluetooth pi3 để sử dụng mini-UART(ttyS0) và khôi phục UART0/ttyAMA0 qua GPIO 14&15.

  • Ở đây, tôi vô hiệu hóa Bluetooth pi3 làm ví dụ

a. Tìm kiếm pi3-disable-bt trong tệp /boot/overlays/README, nó sẽ chỉ cho bạn cách vô hiệu hóa Bluetooth; nếu bạn muốn chuyển đổi Bluetooth sang mini-UART(ttyS0), bạn có thể tìm kiếm pi3-miniuart-bt.

Lập trình mBot Mega với Raspberry Pi bằng Python

Tiến hành vô hiệu hóa Bluetooth pi3

b. Sửa đổi tệp /boot/config.txt. Ở cuối tệp, thêm nội dung sau.

#Enable uart

enable_uart=1

dtoverlay=pi3-disable-bt

Lập trình mBot Mega với Raspberry Pi bằng Python

c. Khởi động lại Raspberry Pi

d. Mở Terminal và nhập lệnh sau:

sudo systemctl disable hciuart

e. Bây giờ bạn có thể sử dụng ttyAMA0 làm UART qua GPIO 14&15

  • Cài đặt thư viện python cho Makeblock

# pip3 install makeblock

  • Nhập mã ban đầu cho Python

from time import sleep

from makeblock import MegaPi,SerialPort

megapi = MegaPi.connect(SerialPort.connect("/dev/ttyAMA0"))

  • Biên dịch mã của bạn bằng Python

2. Phương pháp kết nối thứ hai: Phương pháp kết nối cáp USB

a. Kết nối mBot Mega với máy tính và cập nhật chương trình cơ sở trực tuyến (47.01.101) trên mBlock.

Mẹo: Khi bạn kết nối Raspberry Pi và MegaPi bằng cáp, bạn cần sử dụng hai bộ pin khác nhau để cấp nguồn cho từng bộ.

Lập trình mBot Mega với Raspberry Pi bằng Python

Lập trình mBot Mega với Raspberry Pi bằng Python

Tiến hành kết nối máy tính với mBot Mega bằng cách cập nhật chương trình cơ sở trực tuyến trên mBlock.

Vui lòng kết nối mBot Mega với máy tính trước và cập nhật lên chương trình cơ sở trực tuyến trên mBlock.

  • Cài đặt thư viện python cho Makeblock

# pip3 cài đặt makeblock

  • Nhập mã ban đầu cho Python

from time import sleep

from makeblock import MegaPi,SerialPort

megapi = MegaPi.connect()

# hoặc megapi = MegaPi.connect(SerialPort.connect("/dev/ttyUSB0"))

Mẹo: Khi sử dụng kết nối USB, có hai cách để kết nối với cổng nối tiếp USB.

- Phương pháp 1: Không chỉ định cổng nối tiếp—: MegaPi.connect(), MegaPi.connect() kết nối với cổng nối tiếp USB theo mặc định.

- Phương pháp 2: Chỉ định cổng nối tiếp: MegaPi.connect(SerialPort.connect("/dev/ttyUSB0")), không nhất thiết phải là ttyUSB0, tùy thuộc vào điều kiện thực tế.

  • Biên dịch mã của bạn bằng Python

Một số nội dung liên quan để tham khảo:

Sơ đồ nguồn mở của Megapi:

  • http://t.hk.uy/kPk
  • http://t.hk.uy/kPn

Để điều khiển các cảm biến và động cơ trên mBot Mega bằng Raspberry Pi, trước tiên bạn cần cài đặt thư viện tương ứng.

  • Để điều khiển cảm biến tránh chướng ngại vật và cảm biến theo đường và công tắc tác động, hãy sử dụng thư viện: https://gist.github.com/xeecos/ceeb8fd83cc15b4e83b713bb75a982fd
  • Để điều khiển mô-đun LED RGB, hãy sử dụng thư viện: https://gist.github.com/xeecos/0a326e03f44633fed726867b0e71a3fe
  • Để điều khiển động cơ, hãy sử dụng thư viện: https://gist.github.com/xeecos/5fa6cb5876a8c9449562d8026942fff1/revisions