1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)

32 5 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xe điều khiển từ xa bằng Arduino
Tác giả Hà Duy Khang
Người hướng dẫn Đinh Quốc Hùng
Trường học Trường Đại học Bách khoa, Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Điện – Điện tử
Thể loại Đồ án 2
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 32
Dung lượng 4,67 MB

Cấu trúc

  • 1. GIỚI THIỆU (7)
    • 1.1 Tổng quan (7)
    • 1.2 Nhiệm vụ đề tài (7)
  • 2. LÝ THUYẾT (8)
    • 2.1 Lập trình điều khiển Arduino (8)
      • 2.1.1 Arduino là gì? (8)
      • 2.1.2 Cấu trúc chương trình Arduino (8)
      • 2.1.3 Ngôn ngữ lập trình của Arduino (8)
      • 2.1.4 Các chân vào và ra trên Arduino (Input/Output Pins) (9)
      • 2.1.5 Điều khiển ngoại vi (9)
      • 2.1.6 Kỹ thuật lập trình điều khiển (10)
      • 2.1.7 Ứng dụng thực tiễn của Arduino (11)
    • 2.2 Điều khiển động cơ tuyến tính (11)
    • 2.3 Mạch ổn áp nguồn (13)
      • 2.3.1 Khái niệm mạch ổn áp nguồn (13)
      • 2.3.2 Phân loại mạch ổn áp (13)
      • 2.3.3 Mạch ổn áp tuyến tính (Linear Voltage Regulator) (14)
    • 2.4 Thông tin linh kiện mạch điều khiển (15)
      • 2.4.1 Arduino Mega 2560 Rev3 (15)
      • 2.4.2 IBT_2 (17)
      • 2.4.3 Mạch nguồn giảm áp LM 2596S (18)
      • 2.4.4 Tay điều khiển FS-I6 và RX IA6B (19)
  • 3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG (21)
    • 3.1 Yêu cầu thiết kế (21)
    • 3.2 Phân tích thiết kế (22)
      • 3.2.1 Phân tích mạch điều khiển (22)
      • 3.2.2 Phân tích mô hình xe điều khiển (24)
  • 4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM (27)
  • 5. KẾT QUẢ THỰC HIỆN (28)
  • 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (29)
    • 6.1 Kết luận (29)
    • 6.2 Hướng phát triển (30)
  • 7. TÀI LIỆU THAM KHẢO (30)
  • 8. PHỤ LỤC (31)

Nội dung

Với Arduino, người dùng có thể dễ dàng viết mã lệnh để điều khiển các thiết bị điện tử như cảm biến, đèn LED, động cơ và các thiết bị ngoại vi khác.. Từ tổng quan về lập trình Arduino, n

GIỚI THIỆU

Tổng quan

Lập trình Arduino là một lĩnh vực thuộc ngành kỹ thuật điện tử và công nghệ thông tin, tập trung vào việc phát triển các ứng dụng và hệ thống nhúng thông qua việc sử dụng nền tảng mã nguồn mở Arduino Nền tảng này kết hợp giữa phần cứng là các bo mạch vi điều khiển (như Arduino Uno, Mega) và phần mềm là môi trường lập trình Arduino IDE Với Arduino, người dùng có thể dễ dàng viết mã lệnh để điều khiển các thiết bị điện tử như cảm biến, đèn LED, động cơ và các thiết bị ngoại vi khác Ngôn ngữ lập trình Arduino dựa trên C/C++ và được thiết kế đơn giản, phù hợp cho người mới bắt đầu và các nhà phát triển chuyên nghiệp Lập trình Arduino được ứng dụng rộng rãi trong nhiều lĩnh vực như robot tự hành, hệ thống tự động hóa, điều khiển từ xa, và các dự án Internet of Things (IoT), mở ra khả năng sáng tạo không giới hạn cho người dùng từ mọi cấp độ kỹ năng.

Từ tổng quan về lập trình Arduino, nhiệm vụ của đề tài thiết kế xe điều khiển bằng lập trình Arduino cần tập trung vào việc ứng dụng nền tảng này để phát triển một hệ thống xe có khả năng di chuyển và điều khiển linh hoạt Các nhiệm vụ chính bao gồm: xây dựng hệ thống điều khiển động cơ cho xe (động cơ DC hoặc servo), lập trình cho xe có thể di chuyển theo các hướng khác nhau như tiến, lùi, quay trái, quay phải.

Nhiệm vụ đề tài

Nội dung 1: Tìm hiểu nguyên lý, lý thuyết về lập trình Arduino

Nội dung 2: Tìm hiểu về Arduino Mega 2560, Arduino IBT_2 H-Bridge , mạch ổn áp nguồn sử dụng IC LM2596 (dòng ra 3A), động cơ MY1016Z, bộ thu tín hiệu FS-iA6,

Nội dung 3: Thiết kế bộ điều khiển động cơ MY1016Z bằng lập trình C++.

Nội dung 4: Thiết kế mô hình xe điều khiển

LÝ THUYẾT

Lập trình điều khiển Arduino

Arduino là một nền tảng phần cứng và phần mềm mã nguồn mở được sử dụng để xây dựng các dự án điện tử Phần cứng của Arduino là các vi điều khiển (thường là dòng ATmega của hãng Atmel) và các linh kiện phụ trợ Phần mềm Arduino IDE cung cấp một môi trường lập trình dễ tiếp cận dựa trên ngôn ngữ C/C++[1].

2.1.2 Cấu trúc chương trình Arduino

Mỗi chương trình Arduino bao gồm hai hàm chính là setup() và loop() Đây là hai khối chính của bất kỳ chương trình nào: setup(): Đây là hàm khởi tạo, được gọi một lần duy nhất khi Arduino bắt đầu hoạt động Trong hàm này, các thiết lập ban đầu cho các chân vào (input) và ra (output) của Arduino, cấu hình các thông số giao tiếp, và các cài đặt khởi động khác được thực hiện.

Ví dụ: void setup() { pinMode(13, OUTPUT); // Thiết lập chân 13 là output

} loop(): Đây là hàm vòng lặp chính, chạy liên tục sau khi setup() đã hoàn thành Bất kỳ logic điều khiển nào cần thực hiện liên tục đều được đặt trong hàm này.

Ví dụ: void loop() { digitalWrite(13, HIGH); // Bật đèn LED delay(1000); // Chờ 1 giây digitalWrite(13, LOW); // Tắt đèn LED delay(1000); // Chờ 1 giây

2.1.3 Ngôn ngữ lập trình của Arduino

Arduino sử dụng ngôn ngữ lập trình dựa trên C/C++.

2.1.4 Các chân vào và ra trên Arduino (Input/Output Pins)

Arduino có nhiều chân vào và ra, được chia thành hai loại chính:

Digital Pins (Chân số): Đây là các chân dùng để điều khiển các tín hiệu số (digital), chỉ có thể nhận giá trị HIGH hoặc LOW.

Ví dụ: Điều khiển bật/tắt đèn LED. digitalWrite(13, HIGH); // Đặt chân 13 mức HIGH (5V)

Analog Pins (Chân analog): Các chân này có thể nhận hoặc xuất tín hiệu tương tự (analog) Tín hiệu tương tự là các giá trị điện áp liên tục từ 0V đến 5V.

Ví dụ: Đọc giá trị từ cảm biến nhiệt độ. int sensorValue = analogRead(A0); // Đọc giá trị từ chân A0

Arduino được sử dụng rộng rãi để điều khiển các thiết bị ngoại vi như:

Cảm biến: Arduino có thể nhận dữ liệu từ cảm biến (nhiệt độ, độ ẩm, ánh sáng, v.v.) và sử dụng thông tin đó để điều khiển các thiết bị khác.

Ví dụ: int tempSensorValue = analogRead(A1); // Đọc dữ liệu từ cảm biến nhiệt độ if (tempSensorValue > 500) { digitalWrite(13, HIGH); // Bật đèn LED nếu nhiệt độ quá cao

} Động cơ: Arduino có thể điều khiển động cơ thông qua các mạch điều khiển (driver) như H-Bridge hoặc mô-đun điều khiển động cơ (ví dụ, L298N).

Ví dụ: analogWrite(9, 128); // Điều khiển tốc độ động cơ qua PWM trên chân 9

Màn hình: Arduino có thể hiển thị thông tin trên màn hình LCD hoặc OLED.

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); // Thiết lập màn hình LCD 16x2 lcd.print("Hello, Arduino!"); // In thông tin lên màn hình

Giao tiếp với các thiết bị khác

Arduino hỗ trợ nhiều giao thức giao tiếp với các thiết bị khác:

Serial Communication (Giao tiếp nối tiếp): Được sử dụng để truyền và nhận dữ liệu qua cổng nối tiếp (UART), thường là qua cổng USB.

Serial.begin(9600); // Khởi tạo giao tiếp serial với tốc độ 9600 baud

Serial.println("Hello, world!"); // In thông tin ra cổng serial

I2C và SPI: Đây là các giao thức truyền dữ liệu tốc độ cao thường được sử dụng để kết nối với các cảm biến, mô-đun hoặc các thiết bị khác.

Ví dụ: Kết nối với một cảm biến sử dụng giao thức I2C.

Wire.begin(); // Khởi tạo giao tiếp I2C

Wire.requestFrom(8, 2); // Yêu cầu 2 byte dữ liệu từ thiết bị I2C có địa chỉ 8

2.1.6 Kỹ thuật lập trình điều khiển

Lập trình điều khiển trong Arduino thường liên quan đến việc xử lý tín hiệu từ các cảm biến và điều khiển các thiết bị theo yêu cầu Một số kỹ thuật phổ biến bao gồm:

Sử dụng PWM (Pulse Width Modulation): PWM là phương pháp điều chế độ rộng xung được sử dụng để điều khiển động cơ, đèn LED, và các thiết bị khác Bằng cách thay đổi chu kỳ làm việc của tín hiệu PWM, ta có thể điều chỉnh độ sáng đèn LED hoặc tốc độ động cơ.

Ví dụ: analogWrite(9, 128); // Điều chỉnh độ rộng xung để kiểm soát tốc độ động cơ Điều khiển vòng lặp (Feedback Control): Điều khiển hồi tiếp (feedback) là một kỹ thuật lập trình phổ biến để duy trì hệ thống ở trạng thái mong muốn bằng cách sử dụng các giá trị cảm biến để điều chỉnh hành vi của hệ thống.

Ví dụ: Điều khiển nhiệt độ. int targetTemp = 25; int currentTemp = analogRead(A0); if (currentTemp < targetTemp) { digitalWrite(heaterPin, HIGH); // Bật máy sưởi nếu nhiệt độ thấp hơn mục tiêu

} else { digitalWrite(heaterPin, LOW); // Tắt máy sưởi khi đạt nhiệt độ mong muốn

2.1.7 Ứng dụng thực tiễn của Arduino

Tự động hóa nhà thông minh: Điều khiển các thiết bị điện trong nhà (đèn, quạt, cửa) từ xa.

Robot học: Arduino có thể được sử dụng làm bộ điều khiển chính cho robot, điều khiển các cảm biến và động cơ.

Dự án IoT (Internet of Things): Arduino có thể kết nối

Điều khiển động cơ tuyến tính

Điều khiển động cơ tuyến tính là quá trình điều chỉnh tốc độ, vị trí, hoặc mô- men của động cơ theo một quy luật tuyến tính, tức là sự thay đổi của đầu ra động cơ tỷ lệ thuận với đầu vào điều khiển Trong ngữ cảnh của động cơ điện, điều khiển tuyến tính thường liên quan đến việc điều chỉnh điện áp hoặc dòng điện cung cấp cho động cơ, từ đó kiểm soát tốc độ hoặc mô-men xoắn.

Khái niệm cơ bản: Điều khiển tuyến tính dựa trên nguyên tắc: đầu vào và đầu ra có mối quan hệ tuyến tính Điều này có nghĩa là nếu ta thay đổi một giá trị đầu vào, chẳng hạn như điện áp hoặc dòng điện, thì tốc độ hoặc mô-men xoắn của động cơ cũng sẽ thay đổi tỷ lệ thuận.

Ví dụ: nếu động cơ sử dụng điều khiển tốc độ bằng điện áp, tăng điện áp sẽ làm tăng tốc độ quay của động cơ và ngược lại.

Phương pháp điều khiển động cơ tuyến tính: Điều khiển tốc độ bằng điện áp: Thay đổi điện áp cung cấp cho động cơ sẽ thay đổi tốc độ của nó Động cơ DC thường được điều khiển bằng cách thay đổi điện áp cung cấp. Điều khiển PWM (Pulse Width Modulation): Trong nhiều ứng dụng thực tế, điện áp đầu vào không thể thay đổi liên tục, do đó kỹ thuật điều chế độ rộng xung (PWM) được sử dụng để điều chỉnh tốc độ động cơ PWM tạo ra một chuỗi các xung điện áp với chu kỳ làm việc (duty cycle) khác nhau, điều này làm thay đổi tốc độ trung bình của động cơ một cách tuyến tính.

Chu kỳ làm việc càng cao (ví dụ, 80% điện áp tối đa), tốc độ động cơ càng cao.

Chu kỳ làm việc càng thấp (ví dụ, 20% điện áp tối đa), tốc độ động cơ càng thấp. Động cơ DC và điều khiển tuyến tính:

Với động cơ DC, mô hình điều khiển tuyến tính khá phổ biến và đơn giản vì tốc độ của động cơ tỷ lệ thuận với điện áp cung cấp Động cơ DC có thể dễ dàng điều khiển bằng cách tăng hoặc giảm điện áp đầu vào hoặc sử dụng PWM để thay đổi điện áp trung bình một cách gián tiếp.

Công thức cơ bản của động cơ DC:

 V là điện áp cung cấp,

 E là sức điện động ngược (back EMF) của động cơ,

 I là dòng điện chạy qua động cơ,

 R là điện trở nội của cuộn dây động cơ.

Tốc độ của động cơ DC:

Trong đó  là tốc độ quay của động cơ và K e là hệ số động cơ. Ứng dụng của điều khiển động cơ tuyến tính:

Robot và tự động hóa: Động cơ tuyến tính thường được sử dụng trong các ứng dụng điều khiển chính xác như robot, xe tự hành, hệ thống điều khiển vị trí hoặc tốc độ. Điều khiển công nghiệp: Các dây chuyền sản xuất tự động cần điều chỉnh tốc độ động cơ một cách chính xác để đảm bảo hoạt động trơn tru. Ưu điểm của điều khiển tuyến tính:

Dễ kiểm soát: Do đầu vào và đầu ra có mối quan hệ tuyến tính, dễ dàng điều chỉnh động cơ thông qua các hệ thống điều khiển phản hồi (feedback).

Tính ổn định: Các hệ thống điều khiển tuyến tính dễ dàng đạt được tính ổn định và tính dự đoán, đặc biệt khi kết hợp với các kỹ thuật điều khiển tự động như PID.

Hiệu suất thấp trong một số trường hợp: Nếu không kết hợp với các kỹ thuật như PWM, việc điều khiển tuyến tính chỉ dựa vào điều chỉnh điện áp có thể gây lãng phí năng lượng.

Phụ thuộc vào tải trọng: Trong một số trường hợp, tải trọng thay đổi có thể làm thay đổi tốc độ của động cơ, khiến việc điều khiển tuyến tính trở nên kém hiệu quả hơn.

Mạch ổn áp nguồn

Mạch ổn áp nguồn là một mạch điện tử có chức năng duy trì điện áp đầu ra ổn định, không đổi ngay cả khi điện áp đầu vào hoặc dòng điện tải thay đổi Đây là thành phần quan trọng trong nhiều hệ thống điện tử và thiết bị điện, vì các linh kiện điện tử yêu cầu một mức điện áp ổn định để hoạt động chính xác và hiệu quả.

2.3.1 Khái niệm mạch ổn áp nguồn

Mạch ổn áp nguồn có nhiệm vụ cung cấp điện áp ổn định cho tải bất kể sự biến đổi của điện áp đầu vào (thường là từ nguồn cấp như pin, biến áp, hoặc nguồn điện dân dụng) và dòng điện tải Nó có thể được sử dụng trong nhiều thiết bị như máy tính, điện thoại di động, hệ thống nhúng, và các mạch điều khiển điện tử khác.

2.3.2 Phân loại mạch ổn áp

Có hai loại mạch ổn áp chính:

Mạch ổn áp tuyến tính (Linear Voltage Regulator) Mạch ổn áp xung (Switching Voltage Regulator)

2.3.3 Mạch ổn áp tuyến tính (Linear Voltage Regulator) a Nguyên lý hoạt động

Mạch ổn áp tuyến tính điều chỉnh điện áp đầu ra bằng cách tiêu thụ hoặc "đốt" năng lượng dư thừa dưới dạng nhiệt Nó hoạt động bằng cách điều chỉnh trở kháng giữa nguồn đầu vào và tải, nhằm giữ điện áp đầu ra ở mức ổn định. b Cấu tạo

Một mạch ổn áp tuyến tính đơn giản có thể bao gồm một transistor hoặc IC ổn áp tuyến tính như 7805 (5V), 7812 (12V), kết hợp với các tụ điện để làm phẳng điện áp và loại bỏ nhiễu.

Ví dụ: IC 7805 là một bộ ổn áp phổ biến cung cấp điện áp đầu ra 5V.

Input (V_in): Điện áp đầu vào lớn hơn 5V (thường là 7-15V).

Output (V_out): Điện áp đầu ra ổn định 5V.

Ground: Chân nối đất chung của hệ thống. c Ưu điểm và nhược điểm Ưu điểm: Đơn giản, dễ thiết kế và sử dụng.

Không gây nhiễu tần số cao, tín hiệu đầu ra ổn định và sạch.

Hiệu suất thấp khi chênh lệch giữa đầu vào và đầu ra lớn, vì phần lớn năng lượng dư thừa bị tiêu hao dưới dạng nhiệt.

Khi dòng điện tải lớn, nhiệt độ của bộ ổn áp tăng cao, cần thêm tản nhiệt để đảm bảo hoạt động ổn định. d Ứng dụng

Các mạch yêu cầu nguồn điện sạch, ổn định, và ít nhiễu.

Các mạch điện tử tiêu thụ ít công suất, như cảm biến, mạch điều khiển nhỏ.

Thông tin linh kiện mạch điều khiển

Hình 2:Sơ đồ chi tiết chân Arduino Mega2560

 54 chân digital (15 có thể được sử dụng như các chân PWM)

 4 UARTs (cổng nối tiếp phần cứng),

Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì không sử dụng FTDI chip điều khiển chuyển tín hiệu từ USB để xử lý Thay vào đó, nó sử dụng ATmega16U2 lập trình như là một công cụ chuyển đổi tín hiệu từ USB Ngoài ra, Arduino Mega2560 cơ bản vẫn giống Arduino Uno R3, chỉ khác số lượng chân và nhiều tính năng mạnh mẽ hơn, nên các bạn vẫn có thể lập trình cho con vi điều khiển này bằng chương trình lập trình cho Arduino Uno R3[2].

 IC Điều Khiển (Driver IC): Thường là một con chip BTS7960, đây là phần điều khiển chính giúp điều chỉnh dòng điện và điện áp cung cấp cho động cơ.16 đầu vào analog,

 Transistor MOSFET: Các transistor này giúp điều chỉnh dòng điện đến động cơ. Trong mô-đun BTS7960, thường có hai transistor MOSFET cho mỗi kênh (một cho điều khiển chiều thuận và một cho điều khiển chiều ngược).1 thạch anh 16 MHz,

 Resistor và Capacitor: Các linh kiện thụ động này giúp ổn định tín hiệu và bảo vệ mạch Chúng có thể giúp lọc nhiễu và bảo vệ các thành phần khác trong mạch.

 Diode: Diode bảo vệ mạch khỏi các xung điện áp cao có thể phát sinh khi động cơ ngừng hoạt động hoặc chuyển động.

 Cầu Chì (Fuse): Một số mô-đun có cầu chì để bảo vệ mạch khỏi quá tải dòng điện.

 Pin Kết Nối: Các chân kết nối để cấp nguồn cho mô-đun, điều khiển động cơ, và các chân tín hiệu điều khiển.

 Tản Nhiệt: Một số phiên bản của mô-đun có bộ tản nhiệt để làm mát các linh kiện trong quá trình hoạt động.

2.4.3 Mạch nguồn giảm áp LM 2596S

Hình 4: Mạch nguồn giảm áp

2.4.4 Tay điều khiển FS-I6 và RX IA6B

Hình 5: Tay cầm điều khiển

Thông số kỹ thuật TX FS-I6:

Loại mô hình: Glider/Trực Thăng/Máy Bay cánh bằng

RF Power: Ít Hơn 20dBm

2.4 ghz Hệ Thống: AFHDS 2A và AFHDS

Loại mã: GFSK Độ nhạy: 1024

Cảnh Báo Điện Áp thấp: ít hơn 4.2 V

Cổng DSC: PS2; Output: PPM

ANTEN chiều dài: 26 mm * 2 (ăng-ten kép)

Chế độ hiển thị: Transflective STN tích cực loại, 128*64 dot matrix VA73 * 39 mét, đèn nền màu trắng.

Giấy chứng nhận: CE0678, FCC

Thông Số Kỹ Thuật của RX FS-iA6B :

Loại mô hình: cánh Cố Định/Glider/Máy Bay

RF power: ít hơn 20dBm

THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG

Yêu cầu thiết kế

 Sản phẩm làm ra có thể thực hiện các chức năng di chuyển cơ bản như đi tới, đi lùi, quẹo trái, quẹo phải.

 Thao tác điều khiển dễ dàng

 Dễ tháo lắp vận chuyển.

Phân tích thiết kế

Việc thực hiện các chức năng để xe điều khiển hoạt động em tìm được 2 phương pháp phổ biến để thực hiện cụ thể là :

3.2.1.1 Điều khiển động cơ bằng Transistor (hoặc MOSFET).

Nguyên lý: Dùng transistor hoặc MOSFET làm công tắc điện tử để điều khiển dòng điện cấp cho động cơ.

Kết nối chân điều khiển của Arduino (VD: chân số 9) với chân Base của transistor qua một điện trở.

Chân Collector của transistor nối với một cực của động cơ.

Chân Emitter nối với nguồn âm.

Nguồn dương của động cơ được nối trực tiếp với nguồn cấp (VD: 12V).

Khi Arduino xuất tín hiệu HIGH (5V) ở chân điều khiển, transistor sẽ bật và dòng điện chạy qua động cơ làm nó hoạt động. Ưu điểm: Đơn giản, dễ cài đặt.

Nhược điểm: Không thể điều khiển chiều quay của động cơ, chỉ điều khiển bật/tắt. 3.2.1.2 Điều khiển động cơ bằng cầu H (H-Bridge)

Nguyên lý: Sử dụng mạch cầu H để điều khiển dòng điện chạy qua động cơ, giúp động cơ có thể quay cả chiều thuận và chiều nghịch.

Sử dụng IC điều khiển động cơ như L298N hoặc L293D Đây là các IC có mạch cầu H tích hợp.

Kết nối 2 chân điều khiển từ Arduino (VD: chân số 7 và 8) đến các chân điều khiển của IC L298N.

Nối động cơ với các chân output của L298N.

Khi thay đổi tín hiệu từ Arduino, IC sẽ điều khiển dòng điện chạy qua động cơ theo các hướng khác nhau, cho phép điều khiển chiều quay. Ưu điểm: Điều khiển được cả tốc độ và chiều quay của động cơ.

Nhược điểm: Cần thêm linh kiện và mạch phức tạp hơn.

Với yêu cầu xe điều khiển có thể thực hiện các thao tác phức tạp hơn như tăng tốc , vẹo trái, vẹo phải nên ta chọn phương pháp điều khiển động cơ bằng cầu H.

Sơ đồ khối và giải thích :

Hình 7: Sơ đồ khối khái quát

Khối Arduino Mega 2560 Rev3 thực hiện chức năng điều khiển 2 khối H- Bridge.

2 khối IBT_2 là 2 khối H-Bridge điều khiển 2 động cơ MY1016z.

Khối hạ áp 5V thực hiện chức năng hạ nguồn từ 15V thành 5V để nạp vào các khối IBT_2 và aten điều khiển FS-IA6.

Khối hạ áp 9V thực hiện chức năng hạ nguồn từ 15V thành 9V để nạp vào khối Arduino Mega 2560 Rev3.

Aten FS-IA6 kết nối điều khiển mạch ra remote điều khiển bằng tay.

3.2.2 Phân tích mô hình xe điều khiển

Mô hình xe điều khiển thỏa các tiêu chí như chạy được trong môi trường nhiều bùn lầy như trên các cánh đồng ruộng.Dễ tháo lắp vận chuyển cũng như tích hợp được nhiều tính năng như cày cấy, phun thuốc , nhổ cỏ, cắt cỏ…v.v

Mô hình xe được thiết kế với các thông số bao gồm :

 Chiều rộng xe có thể tùy chỉnh ( giao động từ 80cm đến 120cm)

 Khung xe được làm bằng thép ống

 2 bánh trước là 2 bánh xe máy cày vỏ 400-12

 2 bánh sau là 2 bánh xe rùa đường kính 30cm.

 Sử dụng công cụ Autodesk Inventor để vẽ mô phỏng xe :

Hình 8: Mặt trước mô hình xe

Hình 9: Mặt ngang mô hình xe

Hình 10: Mặt dưới mô hình xe

Hình 11: Mặt trên mô hình xe

STT Loại Số lượng Chiều dài Thông số

Hộp chữ nhập 30x60 (dày 2mm)

1 Thành chiều dài xe trên 4 1.2m X

2 Thanh chiều dài xe dưới

4 Thanh cố định bánh trước

5 Thanh giá đỡ pin mắt trời

6 Thanh cố định chiều ngang

7 Tấm che 2 1mx2 khung xe m

8 Sên xe đạp 2 nhông sên 2

Bạc đạn 4 bạc đạn côn 2 bulon, ốc Nhiều sắt chữ v 0.5m dày 2mm

Bảng 1: Thống kê vật liệu

THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM

Code nạp vào Arduino thực hiện các chức năng điều khiển động cơ để thực hiện các chức năng tăng giảm tốc độ, tiến-lùi, quẹo trái, quẹo phải.

 Bắt đầu giao tiếp Serial với tốc độ 115200 bps.

 In ra thông báo rằng chương trình đã được tải lên, kèm theo ngày và giờ.

 Kích hoạt mô-đun IBT2 bằng cách gọi hàm motor.enable().

Tăng tốc độ động cơ từ 0 đến 255:

1 Khởi tạo biến speed từ 0 đến 255.

2 Cài đặt tốc độ động cơ bằng cách gọi hàm motor.setSpeed(speed).

3 Đọc dòng điện bằng cách gọi motor.readCurrent().

4 Kiểm tra lỗi: o Nếu giá trị dòng điện nhỏ hơn 0, in thông báo lỗi và thoát chương trình.

5 In ra giá trị tốc độ và dòng điện hiện tại.

6 Tạm dừng chương trình 100ms (delay(100ms)).

7 Lặp lại quá trình này cho đến khi speed đạt 255.

8 Dừng động cơ bằng cách gọi hàm motor.stop().

Giảm tốc độ động cơ từ 255 về -256:

1 Khởi tạo biến speed từ 255 về -256.

2 Cài đặt tốc độ động cơ bằng cách gọi hàm motor.setSpeed(speed).

3 Đọc dòng điện bằng cách gọi motor.readCurrent().

4 Kiểm tra lỗi: o Nếu giá trị dòng điện nhỏ hơn 0, in thông báo lỗi và thoát chương trình.

5 In ra giá trị tốc độ và dòng điện hiện tại.

6 Tạm dừng chương trình 100ms (delay(100ms)).

7 Lặp lại quá trình này cho đến khi speed đạt -256.

8 Dừng động cơ bằng cách gọi hàm motor.stop().

 Tạm dừng chương trình trong 1000ms trước khi lặp lại.

4 Lặp lại vòng lặp chính từ bước 3.

 Chương trình quay lại bước 3 và tiếp tục lặp cho đến khi bị dừng.

KẾT QUẢ THỰC HIỆN

Sau quá trình nghiên cứu và thực hiện, các kết quả thu được đã chứng minh hiệu quả và tính khả thi của phương án đã đề xuất Dưới đây là những kết quả chính mà nhóm thực hiện đã đạt được trong suốt quá trình triển khai đồ án :

Hình 12: Mạch thực tế Mạch được cấp nguồn bởi nguồn pin năng lượng mặt trời và được điều khiển bởi tay cầm điều khiển Flysky

Phần video điều khiển được lưu vào : https://drive.google.com/drive/folders/1_KtgOlJkQwJvoV3vRTVtis8KfT5YZJKa? usp=drive_link

Ngày đăng: 30/10/2024, 20:45

HÌNH ẢNH LIÊN QUAN

Hình 1: Arduino Mega2560 - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 1 Arduino Mega2560 (Trang 15)
Hình 2: Sơ đồ chi tiết chân Arduino Mega2560 - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 2 Sơ đồ chi tiết chân Arduino Mega2560 (Trang 16)
Hình 3:  Arduino IBT_2 - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 3 Arduino IBT_2 (Trang 17)
Hình 4:  Mạch nguồn giảm áp - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 4 Mạch nguồn giảm áp (Trang 19)
Hình 6:   RX IA6B - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 6 RX IA6B (Trang 20)
Hình 5:  Tay cầm điều khiển - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 5 Tay cầm điều khiển (Trang 20)
Hình 7:  Sơ đồ khối khái quát - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 7 Sơ đồ khối khái quát (Trang 23)
Hình 8:  Mặt trước mô hình xe - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 8 Mặt trước mô hình xe (Trang 24)
Hình 9:  Mặt ngang mô hình xe - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 9 Mặt ngang mô hình xe (Trang 25)
Hình 10: Mặt dưới mô hình xe - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 10 Mặt dưới mô hình xe (Trang 25)
Hình 11:  Mặt trên mô hình xe - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 11 Mặt trên mô hình xe (Trang 26)
BẢNG NGUYÊN VẬT LIỆU - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
BẢNG NGUYÊN VẬT LIỆU (Trang 26)
Bảng 1: Thống kê vật liệu - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Bảng 1 Thống kê vật liệu (Trang 27)
Hình 12:  Mạch thực tế Mạch được cấp nguồn bởi nguồn pin năng lượng mặt trời và được điều khiển bởi tay  cầm điều khiển Flysky . - Đồ Án 2 Đề tài remote controlled car programmed with arduino (xe Điều khiển từ xa bằng arduino)
Hình 12 Mạch thực tế Mạch được cấp nguồn bởi nguồn pin năng lượng mặt trời và được điều khiển bởi tay cầm điều khiển Flysky (Trang 29)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w