Lập trình Ultimate 2.0 với Arduino

31/05/2024
Lập trình Ultimate 2.0 với Arduino

Arduino là một nền tảng điện tử nguồn mở dựa trên phần cứng và phần mềm dễ sử dụng. Nó dành cho bất cứ ai thực hiện các dự án tương tác. Môi trường phát triển Arduino giúp bạn dễ dàng viết mã và tải mã lên bảng I/O. Bạn có thể sử dụng ngôn ngữ Arduino (C\C++) để tương tác với phần cứng Arduino. 
MegaPi tương thích với Arduino Mega 2560 nên bạn có thể phát triển chương trình với Arduino IDE. Chúng tôi khuyên bạn nên cài đặt thư viện chương trình Makeblock nếu sử dụng Arduino IED.
I. Lập trình Arduino
1. Đặt Arduino
(1) Nhận thư viện chương trình Arduino IDE và Makeblock
Đăng nhập trang web chính thức của Arduino để tải xuống Arduino IDE:
https://www.arduino.cc/en/Main/Software
Bạn nên tải về gói cài đặt cho hệ điều hành tương ứng (Tuỳ thuộc phiên bản mới nhất).
Tiến hành tải về gói cài đặt cho hệ điều hành tương ứng
(2) Tải các chức năng của thư viện Makeblock:
https://github.com/Makeblock-official/Makeblock-Libraries/archive/master.zip
Giải nén thư mục makeblock trong zip vào thư viện mặc định của Arduino. Thư mục thư viện Arduino của bạn bây giờ sẽ trông như thế này:
Windows 7(trên Windows):
[thư mục cài đặt arduino]\libraries\makeblock\src
[thư mục cài đặt arduino]\libraries\makeblock\example
….
Giải nén thư mục makeblock trong zip vào thư viện mặc định của Arduino
hoặc như thế này (trên Mac):
[thư mục arduino]\Nội dung\Java\libraries\makeblock\src
[thư mục arduino]\Nội dung\Java\libraries\makeblock\example

(3) Mở ứng dụng Arduino. Nếu đã mở nó, bạn cần khởi động lại để xem thay đổi.
Tiến hành mở ứng dụng Arduino
2. Kết nối MegaPi với máy tính
Vật liệu: máy tính, MegaPi, dây giao diện loại USB B, nguồn điện 9-12V, v.v.
(1) Kết nối MegaPi với máy tính bằng dây USB, sau đó máy tính sẽ tự động cài đặt driver MegaPi;
(2) Mở trình quản lý thiết bị và bạn sẽ thấy số cổng của MegaPi. Số cổng có thể khác nhau ở các máy tính khác nhau. Trong hình số cổng là COM3.
Số cổng của MegaPi trong hình là COM3
(3) Sau đó, chúng tôi có thể xác thực điều này bằng Blink.

a, Mở Arduino IDE, nhấp vào Tools > Board và chọn Arduino Mega 2560 hoặc Mega ADK (Sẽ có một chút khác biệt giữa các phiên bản Arduino IDE khác nhau, vì vậy bạn nên chọn tùy chọn Mega 2560.)
Nên ưu tiên chọn tùy chọn Mega 2560 để thuận tiện cho việc sử dụng
b. Bấm Tools > Port, COM3 (Bạn phải chọn cổng COM tương ứng ngoại trừ COM1)
c. Chọn Tệp (File) > Ví dụ (Example) > 01. Cơ bản (01.Basics) > Nhấp nháy (Blink) để mở Nhấp nháy (Blink). Sau đó nhấn Upload để tải chương trình lên. Điều này sẽ kéo dài khoảng 1 phút.
Tiến hành tải chương trình lên
d. Sau đó, bạn sẽ thấy đèn LED màu xanh lam trên MegaPi nhấp nháy cách nhau một phút.
(4) Nếu trình điều khiển không được cài đặt tự động trên máy tính của bạn, bạn có thể cài đặt thủ công.
•    Windows: CH341SER cho Windows
•    Mac OSX: CH341SER cho MAC
3. Làm mới và khôi phục firmware
Chọn Tệp (File) > Ví dụ (Examples) > MakeBlockDrive > Firmware_for_MegaPi > Firmware_for_MegaPi và tải chương trình lên MegaPi.
Chọn lần lượt File > Examples > MakeBlockDrive > Firmware_for_MegaPi > Firmware_for_MegaPi
4. Ví dụ về lập trình
4.1. Ví dụ ngắn gọn về ứng dụng trình điều khiển và ví dụ phức tạp về lập trình.
(1) Bạn nên chuẩn bị những thiết bị này:
•    1 x bộ điều khiển động cơ DC bộ mã hóa;
•    Động cơ DC 1x25mm;
•    1 x MegaPi;
•    1 x dây giao diện loại B USB;
•    1 x nguồn điện (9-12V) (hoặc pin kiềm)
Chuẩn bị đầy đủ các thiết bị để tiến hành lập trình
(2) Chèn trình điều khiển động cơ DC bộ mã hóa vào PORT1 của MegaPi. Hãy căn chỉnh các lỗ mà không được bỏ sót – chốt đỏ với đầu cái màu đỏ, chốt màu vàng với đầu cái màu vàng, nếu không bảng điều khiển chính và trình điều khiển có thể bị cháy.
Chèn điều khiển động cơ DC bộ mã hóa vào PORT1 của MegaPi
(3) Kết nối cực của động cơ DC (Cam) với tiếp điểm màu xanh lá cây 1A+ và 1A- trên MegaPi (1B+ và 1B-có thể được kết nối với động cơ khác).
Thực hiện kết nối cực của cơ DC
(4) Mở chương trình ứng dụng, chọn Tệp (File) > Ví dụ (Examples) > MakeBlockDrive > Me_MegaPiDCMotor > MeMegaPiDCMotorDriverTest.
Tiến hành mở chương trình ứng dụng
Đây là ví dụ về hoạt động đồng thời của 4 động cơ trên PORT1 và PORT2. Người dùng có thể thay đổi chương trình tùy theo tình hình.
(5) Chọn Công cụ (Tools) > Bảng (Board) > Arduino Mega 2560 hoặc Mega ADK.
(6) Chọn Tools > Port > COM3 (chọn COM tương ứng ngoại trừ COM1).
(7) Bấm Upload để upload chương trình (khoảng 1 phút). Sau đó cắm nguồn điện 12V vào và bật công tắc, động cơ DC sẽ bắt đầu chạy.
(8) Giới thiệu chức năng của động cơ DC:
Chức năng    Tính năng
MeMegaPiDCMotor(cổng uint8_t)    Xác định cổng của động cơ và chia chúng thành A và B
Void run(int16_t speed): chạy vô hiệu (tốc độ int16_t)    Động cơ chạy với tốc độ nhất định
Void stop(void): vô hiệu dừng(void)    Dừng động cơ

4.2. Điều khiển 1 động cơ mã hóa để quay theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ trong khoảng thời gian một phút
(1) Bạn nên chuẩn bị những thiết bị này:
•    Động cơ DC mã hóa 1 x 25;
•    1 x bộ mã hóa/trình điều khiển tái sử dụng DC;
•    1 x dây động cơ mã hóa;
•    1 x MegaPi;
•    1 x cáp giao diện loại B USB;
•    1 x nguồn điện
Chuẩn bị đầy đủ các thiết bị để lập trình
2) Chèn trình điều khiển động cơ DC bộ mã hóa vào PROT1 của MegaPi. Hãy căn chỉnh các lỗ mà không bỏ sót – chốt màu đỏ với đầu cái màu đỏ, chốt màu vàng với đầu cái màu vàng, hoặc bảng điều khiển chính và trình điều khiển có thể bị cháy.
(3) Kết nối dây điều khiển bộ mã hóa với trình điều khiển (cổng màu trắng) và đầu còn lại kết nối với động cơ mã hóa (không tiếp xúc với cảm biến màu trắng trên động cơ mã hóa và tấm xoay màu đen)
Kết nối dây điều khiển bộ mã hóa với trình điều khiển và đầu còn lại kết nối với động cơ mã hóa
(4) Viết chương trình:
#include "MeMegaPi.h"
const byte interruptPin =18;
const byte NE1=31;
uint8_t motorSpeed = 100;
long count=0;
unsigned long time;
unsigned long last_time;
MeMegaPiDCMotor motor1(PORT1B);
void setup()
{
    pinMode(interruptPin, INPUT_PULLUP);
    pinMode(NE1, INPUT);
    attachInterrupt(digitalPinToInterrupt(interruptPin), blink, RISING);
    Serial.begin(9600);   
}
void loop()
{
    motor1.run(motorSpeed);   // value: between -255 and 255
    time =millis(); 
    if(time-last_time>2000)
    {
        Serial.println(count);
        last_time=time;
   }
}
void blink()
{
    if (digitalRead(NE1)>0)
        count++;
    else
        count--;
}
LƯU Ý: Chương trình này điều khiển động cơ quay theo chiều kim đồng hồ và tính toán số xung – số xung được tạo ra bởi ngắt bên ngoài. Sau đó kiểm tra xem nó đang quay theo chiều kim đồng hồ hay ngược chiều kim đồng hồ thông qua chốt công suất cao/thấp. Số xung sẽ được in cứ sau 2 giây.
(5) Chọn Công cụ (Tools) > Bảng (Board )> Arduino Mega 2560 hoặc Mega ADK.
(6) Chọn Tools > Port > COM3 (chọn COM tương ứng ngoại trừ COM1).
(7) Bấm Upload để upload chương trình (khoảng 1 phút). Sau đó cắm bộ chuyển đổi nguồn 12V và bật công tắc, động cơ DC bộ mã hóa sẽ bắt đầu chạy.
(8) Nhấp vào giao tiếp cổng nối tiếp ở góc trên bên phải của IDE, sau đó bạn sẽ thấy số xung.
Nhấp vào giao tiếp cổng nối tiếp ở góc trên bên phải của IDE sẽ thấy được số xung
Mỗi cổng có chân tương ứng:
motorport    interruptPin    EN1
PORT1B    18    31
PORT2B    19    38
PORT3B    3    49
PORT4B    2    A1

Bạn có thể viết chương trình của riêng mình theo số xung dương/âm để có thể kiểm soát chính xác tốc độ và góc của động cơ nhằm đạt được quá trình mã hóa.
4.3. Giải thích cách MegaPi điều khiển động cơ bước quay
(1) Bạn nên chuẩn bị những thiết bị này:
•    1 x động cơ bước;
•    1 x thợ lặn động cơ bước;
•    1 x MegaPi;
•    1 x cáp giao diện loại B USB;
•    1 x nguồn điện;
Chuẩn bị các thiết bị cần thiết để phục vụ lập trình
(2) Chèn trình điều khiển động cơ bước vào PORT1 của MegaPi. Căn chỉnh các lỗ mà không bỏ sót– ghim màu đỏ với tiêu đề cái màu đỏ, ghim màu vàng với tiêu đề cái màu vàng.
(3) Động cơ bước chúng tôi sử dụng là động cơ bước bốn pha hai pha với bốn dây: xanh dương, đỏ, xanh lá cây và đen. Kết nối dây với các cổng theo trình tự này.
(4) Mở chương trình ứng dụng, chọn Tệp (File)> Ví dụ (Examples) > MakeBlockDrive > Me_MegaPiOnBoardStepper > MegaPiOnBoardStepperTest.
Tiến hành mở chương trình ứng dụng
(5) Chọn Công cụ (Tools) > Bảng (Board) > Arduino Mega 2560 hoặc Mega ADK.
(6) Chọn Tools > Port > COM3 (chọn COM tương ứng ngoại trừ COM1).
(7) Bấm Upload để upload chương trình (khoảng 1 phút). Sau đó cắm nguồn điện 12V và bật công tắc; (Động cơ DC có thể di chuyển với điện áp DC6-12V, trong khi động cơ bước yêu cầu điện áp trên DC9V (DC12V sẽ là tốt nhất).
LƯU Ý: Đối với chương trình này, bạn cần kết nối với cổng nối tiếp ở góc trên bên phải của IDE. Sau đó, gửi các số tương ứng từ 0 đến 9 và động cơ bước sẽ đi đến số bước tương ứng theo số bạn đã gửi.
Tiến hành kết nối với cổng nối tiếp ở góc trên bên phải của IDE
Gửi các số tương ứng từ 0 đến 9 và động cơ bước sẽ đi đến số bước tương ứng theo số bạn đã gửi.
(8) Đặc điểm chức năng của động cơ DC:
Chức năng    Tính năng
MeStepperOnBoard(int slot):     Xác định cổng của động cơ bước
void setMicroStep(int8_t value)    Thiết lập microstep của động cơ bước (1, 2, 4, 8, 16, 32)
void setMaxSpeed(float speed)    Đặt tốc độ tối đa của động cơ bước
void setAcceleration(float acceleration)    Thiết lập gia tốc của động cơ bước
void enableOutputs(void)    Kích hoạt động cơ bước
void moveTo(long absolute)    Chuyển tới
void move(long relative)    Di chuyển
boolean run(void)    Chạy

5. Giới thiệu các cảm biến và linh kiện khác nhau
Liên kết: Nền tảng của Maker (Bộ phận & Mô-đun)

Để ý:
•    Cấp điện áp MegaPi DC 6-12V.
•    Ngăn ngừa đoản mạch.
•    Ngăn chặn sự ô nhiễm của nước, chất lỏng có tính axit/kiềm hoặc các mảnh vụn rắn, v.v.
•    Tránh xa trẻ em và vật nuôi.
•    Đừng vứt đi.
Liên hệ chúng tôi
Gửi thư tới: service@makeblock.com