Giới thiệu động cơ Encoder dành cho robot mBot Ranger

31/05/2024
Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Động cơ mã hóa quang học 180 được trang bị bộ mã hóa quang học cho phép điều khiển với độ chính xác cao.Với hai lỗ ren M4 trên mỗi ba cạnh, nó có thể dễ dàng kết nối với các bộ phận cơ khí của Makeblock và do đó có thể được sử dụng linh hoạt khi kết hợp với nhiều bộ phận khác nhau.

Vật liệu được tùy chỉnh giúp giảm tiếng ồn và đảm bảo mô-men xoắn đầu ra lớn. Nó hỗ trợ nhiều trình điều khiển động cơ và bo mạch điều khiển chính, chẳng hạn như Orion, MegaPi, MegaPi Pro và Me Auriga.

1.Thông số kỹ thuật

Tỷ số truyền giảm tốc: 39,6

Điện áp định mức: 7,4 V

Dòng điện không tải: 240 mA

Dòng điện tải: ≤750 mA

Tốc độ không tải: 350 ± 5% (vòng/phút)

Tốc độ ban đầu: 14.000 ± 5% (vòng/phút)

Mô-men xoắn khởi động: 5 kg·cm

Mô-men xoắn định mức: 800 g·cm

Chiều dài trục đầu ra: 9 mm

Công suất: 3,7 W

Góc xoay của bộ mã hóa: 360°

2.Hướng dẫn lập trình

Lập trình với mBlock 5

Mô tả khối (bảng điều khiển chính: Auriga)

Khối

Đặc trưng

 Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Chọn cổng. Đặt công suất thành -100–100.

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Chọn cổng kết nối. Thiết lập tốc độ (tốc độ tối đa tùy thuộc vào kiểu động cơ).

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Chọn cổng.Đặt góc quay (một số tự nhiên). Đặt tốc độ (tốc độ tối đa tùy thuộc vào kiểu động cơ).

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Xác định tốc độ của động cơ

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Xác định góc quay của động cơ so với gốc tọa độ.

Sau khi chương trình sau chạy xong, động cơ mã hóa 1 và động cơ mã hóa 2 sẽ quay với tốc độ 100 vòng/phút trong 1 giây, sau đó dừng quay trong 1 giây và lặp lại quá trình này.

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Lập trình với mBlock 3

Mô tả khối

Khối

Đặc trưng

 Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Chọn khe cắm. Đặt công suất thành -255–255.

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Chọn khe cắm. Đặt tốc độ (tốc độ tối đa tùy thuộc vào kiểu động cơ).

 Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Chọn khe cắm. Đặt góc quay (một số tự nhiên).Đặt tốc độ (tốc độ tối đa tùy thuộc vào kiểu động cơ).

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Xác định tốc độ của động cơ

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Xác định vị trí hoặc góc độ của động cơ so với điểm gốc.

Sau khi chương trình sau chạy xong, động cơ mã hóa 1 và động cơ mã hóa 2 sẽ quay với tốc độ 100 vòng/phút trong 1 giây, sau đó dừng quay trong 1 giây và lặp lại quá trình này.

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Lập trình bằng Arduino

Nếu bạn lập trình bằng Arduino, bạn cần sử dụng thư viện Makeblock-Library-master để điều khiển động cơ.

Sau khi chương trình sau chạy xong, động cơ mã hóa 1 và động cơ mã hóa 2 sẽ quay với tốc độ 100 vòng/phút trong 1 giây, sau đó dừng quay trong 1 giây và lặp lại quá trình này.

// generated by mBlock5 for mBot Ranger

// codes make you happy

#include <Arduino.h>

#include <Wire.h>

#include <SoftwareSerial.h>

#include <MeAuriga.h>

MeEncoderOnBoard Encoder_1(SLOT1);

MeEncoderOnBoard Encoder_2(SLOT2);

MeLightSensor lightsensor_12(12);

void isr_process_encoder1(void)

{

if(digitalRead(Encoder_1.getPortB()) == 0){

Encoder_1.pulsePosMinus();

}else{

Encoder_1.pulsePosPlus();

}

}

void isr_process_encoder2(void)

{

if(digitalRead(Encoder_2.getPortB()) == 0){

Encoder_2.pulsePosMinus();

}else{

Encoder_2.pulsePosPlus(); }

}

}

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;

}else if(direction == 3){

leftSpeed ​​= -speed;

rightSpeed ​​= -speed;

}else if(direction == 4){

leftSpeed ​​= speed;

rightSpeed ​​= speed;

}

Encoder_1.setTarPWM(leftSpeed);

Encoder_2.setTarPWM(rightSpeed);

}

void _delay(float seconds) {

if(seconds < 0.0){

seconds = 0.0;

}

long endTime = millis() + seconds * 1000;

while(millis() < endTime) _loop();

}

void setup() {

TCCR1A = _BV(WGM10);

TCCR1B = _BV(CS11) | _BV(WGM12);

TCCR2A = _BV(WGM21) | _BV(WGM20);

TCCR2B = _BV(CS21);

attachInterrupt(Encoder_1.getIntNum(), isr_process_encoder1, RISING);

attachInterrupt(Encoder_2.getIntNum(), isr_process_encoder2, RISING);

randomSeed((unsigned long)(lightsensor_12.read() * 123456));

while(1) {

move(1, 100 / 100.0 * 255);

_delay(1);

move(1, 0);

_delay(1);

_loop();

}

}

void _loop() {

Encoder_1.loop();

Encoder_2.loop();

}

void loop() {

_loop();

}

Lập trình bằng Python

Cài đặt MegaPi Pro trên Raspberry Pi và kết nối động cơ mã hóa quang học 180 độ với bộ điều khiển DC/mã hóa.

Cài đặt thư viện Makeblock phiên bản mới nhất cho Raspberry Pi, thực hiện lệnh “pip3 install makeblock” trong dòng lệnh, sau đó thực hiện lệnh “upgrade” trong dòng lệnh.

Tạo một tệp Python có đuôi .py.

Viết chương trình bằng ngôn ngữ Python.

Chạy tập tin Python, ví dụ: “python123.py”.

Mô tả chức năng:

Chức năng

Tính năng

Bộ mã hóa động cơ (cổng)      

Chọn cổng để kết nối động cơ DC/encoder.

Cổng: MegaPiPro.PORT1~MegaPiPro.PORT4

Chạy (tốc độ)      

Quay với tốc độ đã chỉ định. Tốc độ: phạm vi tốc độ quay: -180–180

Di chuyển đến (vị trí, tốc độ, hàm gọi lại)    

 

Xoay đến vị trí được chỉ định với tốc độ được chỉ định. vị trí: vị trí mục tiêu tốc độ: tốc độ xoay (phạm vi: -180–180)

hàm gọi lại: hàm gọi lại được kích hoạt khi đạt đến vị trí mục tiêu

Đặt_home()

Đặt vị trí hiện tại làm gốc tọa độ.

Ví dụ chương trình 1:

Sau khi chương trình sau chạy xong, động cơ mã hóa được kết nối với cổng 1 dành cho động cơ DC/mã hóa trên MegaPi Pro sẽ quay theo chiều kim đồng hồ với tốc độ 50 vòng/phút trong 2 giây, dừng quay trong 1 giây, quay ngược chiều kim đồng hồ với tốc độ 50 vòng/phút trong 2 giây, dừng quay trong 1 giây, và sau đó lặp lại quá trình này.

from time import sleep

from makeblock import MegaPiPro

board = MegaPiPro.create()

encoder = board.EncoderMotor(MegaPiPro.PORT1)

while True:

encoder.run(50)

sleep(2)

encoder.run(0)

sleep(1)

encoder.run(-50)

sleep(2)

encoder.run(0)

sleep(1)

Ví dụ chương trình 2:

Sau khi chương trình sau chạy xong, động cơ mã hóa được kết nối với cổng 1 dành cho động cơ DC/mã hóa trên MegaPi Pro sẽ quay đến vị trí mục tiêu.

10 dòng (9 sloc) 274 Bytes

RawBlameHistory

from time import sleep

from makeblock import MegaPiPro

board = MegaPiPro.create()

encoder = board.EncoderMotor(MegaPiPro.PORT1)

position = 0

def on_finished(value):

position = 5000 - position

encoder.move_to(position,100,on_finished)

on_finished(position)

3.Chế độ đấu dây

Kết nối các mô-đun điện tử

Kết nối động cơ mã hóa quang 180 độ với cổng dành cho động cơ mã hóa trên bo mạch điều khiển chính hoặc cổng dành cho động cơ mã hóa trên bộ điều khiển động cơ mã hóa bằng cách sử dụng cáp dành cho động cơ mã hóa quang 180 độ.

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

Xây dựng cấu trúc

Động cơ mã hóa quang học 180 có thể được sử dụng để cung cấp năng lượng hoặc được sử dụng như một phần của khung gầm mBot Ranger. Trục của nó tương thích với puly định thời bằng nhựa 62T có bước và puly định thời bằng nhựa 90T có bước trên nền tảng Maker's Platform của Makeblock.

Giới thiệu động cơ Encoder dành cho robot mBot Ranger

 

Các tin khác

zalo