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

Báo cáo đồ án tốt nghiệp chế tạo mô hình phân loại sản phẩm theo chiều cao dùng arduino

49 19 0

Đ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 đề Báo cáo Đồ án tốt nghiệp chế tạo mô hình phân loại sản phẩm theo chiều cao dùng Arduino
Tác giả Hoàng Nghĩa Hiệp
Người hướng dẫn ThS. Nguyễn Lương Thanh Tùng
Trường học Đại học Bà Rịa - Vũng Tàu
Chuyên ngành Kỹ thuật Điện - Điện tử
Thể loại Báo cáo đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Vũng Tàu
Định dạng
Số trang 49
Dung lượng 2,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1.1 Lý do chọn đề tài (4)
  • 1.2 Giới hạn đề tài (4)
  • 1.3 Nguồn tƣ liệu (4)
  • 1.4 Nhiệm vụ nghiên cứu (5)
  • Chương 2: TỔNG QUAN CÁC LINH KIỆN CHÍNH (6)
    • 2.1 ArduinoUno R3 (6)
      • 2.1.1 Giới thiệu (6)
      • 2.1.2 Uno (8)
      • 2.1.3 Cấu trúc, thông số (9)
    • 2.2 IC 74HC595 (15)
      • 2.2.1 Thế nào là dịch và chốt? (15)
      • 2.2.2 Sơ đồ & chức năng các chân 74HC595 (16)
      • 2.2.3 Giản đồ thời gian về cách hoạt động của IC (18)
    • 2.3 E18-D80NK (19)
      • 2.3.1 Giới thiệu (19)
      • 2.3.2 Thông số kỹ thuật (20)
      • 2.3.3 Sơ đồ dây (20)
    • 2.4 LED 7 đoạn (21)
      • 2.4.1 Giới thiệu (21)
      • 2.4.2 Cấu tạo & Nguyên lý hoạt động (21)
      • 2.4.3 Trở hạn dòng (22)
    • 2.5 Motor DC (23)
      • 2.5.1 Giới thiệu (23)
      • 2.5.2 Thông số kỹ thuật (23)
      • 2.5.3 Cấu tạo & Hoạt động (24)
    • 2.6 Module LM2596 (25)
      • 2.6.1 Giới thiệu (25)
      • 2.6.2 Thông số kỹ thuật (25)
      • 2.6.3 Nguyên lý hoạt động (26)
    • 2.7 Motor Servo (27)
      • 2.7.1 Giới thiệu (27)
      • 2.7.2 Hoạt động & Cấu tạo (28)
      • 2.7.3 Thông số kỹ thuật (29)
      • 2.7.4 Điều biến độ rộng xung (30)
      • 2.7.5 Giới hạn quay (31)
      • 2.7.6 Phân loại và các kích thước đặc biệt (31)
  • Chương 3: MÔ HÌNH ĐẾM & PHÂN LOẠI SẢN PHẨM (32)
    • 3.1 Giới thiệu (32)
    • 3.2 Các phần mềm thiết kế (33)
      • 3.2.1 Arduino (33)
      • 3.2.2 Proteus 8 Professional (34)
    • 3.3 Sơ đồ khối (35)
    • 3.4 Nguyên lý hoạt động (37)
    • 3.5 Mạch in (39)
    • 3.6 Lưu đồ thuật toán (40)
    • 3.7 Code – chương trình (41)
  • Chương 4: KẾT LUẬN (48)
    • 4.1 Ƣu/Nhƣợc điểm (0)
    • 4.2 Hướng phát triển (48)
  • TÀI LIỆU THAM KHẢO (49)

Nội dung

Các bộ vi điều khiển có khả năng xử lý nhiều hoạt động phức tạp mà chỉ cần một chip vi mạch nhỏ, nó đã dần thay thế các tủ điều khiển lớn và phức tạp bằng những mạch điện gọn nhẹ, dễ dàn

Giới hạn đề tài

Trong bài viết này, tôi sẽ giới thiệu về cấu trúc và nguyên lý hoạt động của mô hình phân loại và đếm sản phẩm dựa trên chiều cao, sử dụng Arduino Uno R3, chip 74HC595 và đèn LED 7 đoạn.

Nguồn tƣ liệu

Dựa vào mục đích tìm hiểu, phạm vi giới hạn và đối tượng nghiên cứu; trong quá trình thực hiện, đề tài sử dụng nguồn tư liệu như sau:

- Các tài liệu kỹ thuật về cấu trúc, nguyên lý hoạt động

- Các tài liệu về trang thiết bị điện tử

- Tài liệu về lập trình lập trình, mã hóa vi điều khiển

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Nhiệm vụ nghiên cứu

Mục đích nghiên cứu thông qua đề tài là tìm hiểu về ứng dụng đếm và phân loại sản phẩm nên nhiệm vụ nghiên cứu gồm:

- Tìm hiểu cơ chế hoạt động

- Phân tích sơ đồ nguyên lý

- Nâng cao kỹ năng lập trình vi điều khiển, hàn mạch, làm sản phẩm điện tử

- Phát triển khả năng tư duy cho sinh viên trong quá trình nghiên cứu

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

TỔNG QUAN CÁC LINH KIỆN CHÍNH

ArduinoUno R3

Arduino được thành lập vào năm 2005 như một dự án dành cho sinh viên tại Viện thiết kế tương tác Ivrea ở Italy Tên gọi "Arduino" được lấy từ một quán bar ở Ivrea, nơi các nhà sáng lập thường xuyên gặp gỡ.

Các thiết bị Arduino được lập trình bằng ngôn ngữ riêng, dựa trên ngôn ngữ Wiring, được thiết kế cho phần cứng trong môi trường phát triển tích hợp (IDE) trên máy tính cá nhân Wiring là một biến thể của C/C++, và có những người gọi nó là Wiring, trong khi những người khác lại gọi là C hoặc C/C++.

Sau khi hoàn thành nền tảng Wiring, các nhà nghiên cứu đã hợp tác để tối ưu hóa nó, làm cho nó nhẹ hơn, rẻ hơn và dễ tiếp cận hơn cho cộng đồng mã nguồn mở David Cuarlielles, một trong những nhà nghiên cứu, đã đóng góp quan trọng trong việc phổ biến ý tưởng này.

Các nhà thiết kế của Arduino nỗ lực cung cấp một giải pháp đơn giản và tiết kiệm cho những người đam mê, sinh viên và chuyên gia, giúp họ phát triển các thiết bị tương tác với môi trường thông qua cảm biến và cơ cấu chấp hành.

Thông tin thiết kế phần cứng của mạch Arduino được công khai, cho phép người dùng tự tay thực hiện (mã nguồn mở) Tính đến giữa năm 2011, đã có khoảng 300.000 mạch Arduino chính thức được sản xuất thương mại, và con số này tăng lên khoảng 700.000 mạch vào năm 2013.

The original Arduino hardware is produced by an Italian company called Smart Projects Additionally, several Arduino derivative boards are designed by an American company.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SparkFun Electronics Nhiều phiên bản của Arduino cũng đã được sản xuất phù hợp cho nhiều mục đích sử dụng:

Hình 2.1: Những phiên bản của Arduino

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

"Uno" là tên gọi tiếng Ý, đánh dấu sự ra mắt của Arduino 1.0 Phiên bản Uno và 1.0 sẽ trở thành tài liệu tham khảo chính cho Arduino Đây là phiên bản mới nhất trong dòng board Arduino và là mô hình tham chiếu cho các nền tảng Arduino.

Arduino Uno là một bo mạch dựa trên vi điều khiển ATmega328, với 14 chân đầu vào/đầu ra và 6 đầu vào analog Nó hoạt động với tần số 16 MHz, có kết nối USB, jack cắm điện, tiêu đề ICSP và nút reset Bo mạch này cung cấp mọi thứ cần thiết để hỗ trợ vi điều khiển, chỉ cần kết nối với máy tính qua cáp USB hoặc cấp điện để bắt đầu sử dụng.

Uno khác với các phiên bản trước vì không sử dụng chip FTDI để điều khiển USB-to-serial Thay vào đó, nó sử dụng Atmega 16U2 được lập trình như một công cụ chuyển đổi USB-to-serial.

Phiên bản 2 (R2) của Uno sử dụng Atmega8U2 có một điện trở kéo dòng 8U2 HWB xuống đất, làm cho nó dễ dàng hơn để đưa vào chế độ DFU

Phiên bản 3 (R3) của Uno có các tính năng mới sau đây:

 Thêm SDA và SCL gần với pin Aref và hai chân mới được đặt gần với pin RESET, các IOREF cho phép thích ứng với điện áp cung cấp

 Đặt lại mạch khỏe mạnh hơn

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Bảng 2.1: Một vài thông số của Arduino UNO R3

Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 15 a Vi điều khiển & bộ nhớ

Arduino UNO sử dụng ba vi điều khiển 8bit AVR: ATmega8, ATmega168 và ATmega328 Bộ vi điều khiển này có khả năng thực hiện các tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, và tạo ra một trạm đo nhiệt độ - độ ẩm với khả năng hiển thị trên màn hình LCD.

Hình 2.3: Vi điều khiển Atmega328 tiêu chuẩn

32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ

Flash của vi điều khiển thường có vài KB được sử dụng cho bootloader, nhưng bạn không cần lo lắng, vì hiếm khi nào cần quá 20KB bộ nhớ này.

SRAM (Static Random Access Memory) có dung lượng 2KB, nơi lưu trữ giá trị của các biến được khai báo trong lập trình Số lượng biến khai báo càng nhiều thì yêu cầu bộ nhớ RAM càng lớn Tuy nhiên, bộ nhớ RAM thường không phải là vấn đề đáng lo ngại Lưu ý rằng khi mất điện, dữ liệu trên SRAM sẽ bị mất.

EEPROM (Bộ nhớ chỉ đọc có thể lập trình và xóa điện tử) 1Kb hoạt động như một ổ cứng mini, cho phép đọc và ghi dữ liệu mà không lo mất mát khi mất điện, khác với dữ liệu trên SRAM.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 16 b Cấu tạo

Một board Arduino đời đầu có thiết kế bao gồm một cổng giao tiếp RS-232 ở góc trên bên trái và chip Atmel ATmega8 màu đen nằm ở góc dưới bên phải Board này cũng trang bị 14 chân I/O số ở phía trên và 6 chân analog đầu vào ở phía đáy.

Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển cho các mạch ngoài, với các phiên bản như Diecimila, Duemilanove và Uno có 14 chân I/O kỹ thuật số, trong đó 6 chân có khả năng tạo xung PWM và 6 chân input analog có thể sử dụng như 6 chân I/O số Các chân này được thiết kế nằm phía trên mặt board thông qua các header cái 0.10-inch (2.5 mm) Ngoài ra, các board Arduino Nano, Bare Bones Board và Boarduino cũng cung cấp chân header đực ở mặt trên để cắm vào breadboard.

IC 74HC595

IC 74HC595 còn được gọi là IC dịch chốt với mối quan hệ "vào nối tiếp và ra song song 8 bit"

Để hiểu rõ về IC dịch chốt, chúng ta cần trả lời một số câu hỏi cơ bản Trước tiên, cần làm rõ khái niệm về "dịch" và "chốt" Việc tìm hiểu lý thuyết kỹ thuật số liên quan đến hai thuật ngữ này sẽ giúp chúng ta nắm vững vấn đề hơn.

2.2.1 Thế nào là dịch và chốt?

Thuật ngữ "Dịch" trong ngữ cảnh của IC đề cập đến đặc tính ngõ vào nối tiếp, cho phép nhiều giá trị logic được đưa vào một ngõ vào của IC theo thứ tự, lưu trữ trong bộ nhớ cho đến khi có lệnh xử lý Ngõ vào nối tiếp cho phép nạp giá trị từ từ tại các thời điểm khác nhau, trong khi ngõ vào song song cho phép nạp nhiều giá trị cùng lúc qua nhiều ngõ vào Tương tự, thuật ngữ này cũng áp dụng cho ngõ ra của IC.

Chốt là cơ chế cho phép IC duy trì giá trị ngõ ra khi thỏa mãn một điều kiện nhất định, bất chấp sự thay đổi của tín hiệu ngõ vào.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

2.2.2 Sơ đồ & chức năng các chân 74HC595 Để hiểu rõ về IC 74HC595 ta cần có trong tay datasheet của nó

Hình 2.10: Sơ đồ chân của IC

Các chân từ 1 đến 7 và chân số 15 là ngõ ra của IC, trong khi chân DS (14) là ngõ vào của IC Do đây là IC vào nối tiếp, chỉ cần một ngõ vào là đủ.

 Chân 16 - VCC là chân cấp nguồn dương (từ 2V đến 6V)

 Chân số 8 GND là chân cấp Ground – cực (-) của nguồn

Chân SHCP là chân nhận xung clock, giúp đưa tín hiệu nhịp vào IC Khi có cạnh lên của xung, IC sẽ chuyển tín hiệu từ ngõ vào vào bộ nhớ để chờ xử lý.

Xung clock là một chuỗi tín hiệu logic bao gồm các giá trị 0 và 1, có thể xen kẽ hoặc ngẫu nhiên Nó đóng vai trò quan trọng trong việc điều khiển các hoạt động của mạch điện tử.

Hình 2.11: VD về xung clock

Cạnh lên của xung clock xảy ra khi tín hiệu chuyển từ 0 lên 1, trong khi cạnh xuống là thời điểm tín hiệu chuyển từ 1 về 0.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Khi có cạnh lên của xung tại chân SHCP, một tín hiệu logic từ ngõ vào của IC sẽ được lưu trữ trong IC để chờ tín hiệu cho phép xử lý Bộ nhớ tối đa của IC là 8 bit; nếu vượt quá ngưỡng này, giá trị mới sẽ được đưa vào IC và giá trị cũ nhất sẽ bị xóa.

Hình 2.12: Cách nạp dữ liệu của bộ nhớ IC ghi dịch

Chân STCP là chân nhận xung clock vào IC, giúp IC xuất toàn bộ 8 bit dữ liệu đã được lưu trữ (như đã đề cập ở chân SHCP) ra ngõ ra của IC khi có cạnh lên của xung.

Chân MR là chân reset IC, giúp đưa IC về trạng thái ban đầu, tương tự như việc ghost máy tính Khi chân này được kích hoạt, toàn bộ bộ nhớ của IC sẽ bị xóa thành 0, nhưng tín hiệu ở ngõ ra vẫn giữ nguyên giá trị trước đó Chân MR hoạt động ở mức thấp (LOW active), nghĩa là để reset IC, cần đưa 0V vào chân này.

Chân EO, hay chân Output Enable, cho phép điều chỉnh giá trị ngõ ra khi được kích hoạt Nếu chân IC có dấu gạch trên đầu, điều này có nghĩa là nó hoạt động ở mức thấp (LOW active), tức là cần đưa 0V (GND) vào chân để kích hoạt Ngược lại, khi chân này không được kích hoạt (đưa mức logic 1 vào), ngõ ra sẽ chuyển sang trạng thái trở kháng cao.

Chân Q7S của IC 74HC595, với chữ S là viết tắt của Serial (nối tiếp), thường được sử dụng để kết nối các IC 74HC595 theo dạng nối tiếp Chân Q7S của con trước sẽ được nối vào chân DS của con sau, cho phép truyền dữ liệu giữa các IC Giá trị của chân này đại diện cho bit trọng số cao trong bộ nhớ IC, trong khi bit mới được đưa vào sẽ nằm ở vị trí LSB (bit số thấp).

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

MSB bị đẩy ra khỏi bộ nhớ của IC sẽ không mất đi mà trước đó nó đã đ ược sao chép qua IC phía sau

2.2.3 Giản đồ thời gian về cách hoạt động của IC

Hình 2.13: Giản đồ hoạt động của IC

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

E18-D80NK

Cảm biến siêu âm thường được sử dụng để phát hiện vật cản, nhưng dễ bị nhiễu Để khắc phục nhược điểm này, đồ án đã áp dụng phương pháp phát hiện vật cản bằng hồng ngoại, cụ thể là cảm biến E18-D80NK Cảm biến này thường được ứng dụng trong các robot tránh vật cản, dây chuyền phát hiện sản phẩm và các bộ reminder đa chức năng.

Cảm biến vật cản hồng ngoại E18-D80NK sử dụng ánh sáng hồng ngoại để phát hiện vật cản, mang lại độ phản hồi nhanh và giảm thiểu nhiễu nhờ vào việc sử dụng mắt nhận và phát tia hồng ngoại với tần số riêng biệt Ngoài ra, khoảng cách hoạt động của cảm biến có thể được điều chỉnh thông qua biến trở ở phần cuối thân cảm biến.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

 Điện áp hoạt động: 5VDC

 Khoảng cách hoạt động tối đa: ~80cm

 Dòng kích ngõ ra: 300mA

 Thời gian hồi đáp: ~2ms

 Nhiệt độ môi trường làm việc: -25 o C~50 o C

Ngõ ra dạng NPN với cực thu hở cho phép tùy chỉnh điện áp ngõ ra, với trở treo được điều chỉnh, điện áp ngõ ra sẽ tương ứng với giá trị trở treo.

 Chất liệu vỏ cảm biến: Nhựa

 Hiển thị ngõ ra bằng Led

E18-D80NK có cách nối dây tương đối đơn giản:

 Màu nâu: VCC, nguồn dương 5VDC

 Màu xanh dương: GND, nguồn âm 0VDC

 Màu đen: tín hiệu ngõ ra cực thu hở NPN, cần trở treo để tạo mức cao

Hình 2.15: Sơ đồ chân của E18-D80NK

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

LED 7 đoạn

LED 7 đoạn hay LED 7 đoạn (Seven Segment display) dùng nhiều trong các mạch hiện thị thông báo, hiện thị số, kí tự đơn giản LED 7 đoạn được cấu tạo từ các LED đơn sắp xếp theo các đoạn nét để có thể biểu diễn các chữ số hoặc các kí tự đơn Tùy vào kích thước của số và kí tự mà mỗi đoạn được cấu tạo bởi một hay nhiều LED đơn Qua đó người ta chỉ cần các bit tương ứng với các LED đơn để điều khiển, hiển thị số từ 0 đến 9 và các kí tự

2.4.2 Cấu tạo & Nguyên lý hoạt động

LED 7 đoạn là một thiết bị bao gồm ít nhất 7 đèn LED được kết nối với nhau, cho phép hiển thị các số từ 0 đến 9 và một số chữ cái thông dụng Để phân cách, một đèn LED bổ sung được sử dụng để hiển thị dấu chấm (dot).

Hình 2.17: Cấu tạo LED 7 đoạn

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Như vậy nếu như muốn hiển thị ký tự nào thì ta chỉ cần cấp nguồn vào chân đó là led sẽ sáng như mong muốn

LED 7 đoạn dù có nhiều biến thể nhưng cũng chỉ vẫn có 2 loại:

+ Chân Anode chung (Chân + các led mắc chung lại với nhau )

+ Chân Catode chung (Chân - các led được mắc chung với nhau )

Hình 2.18: Cấu tạo 2 loại LED 7 đoạn Điện áp giữa Vcc và Gnd phải lớn hơn 1.3 V mới cung cấp đủ led sáng, tuy nhiên không được cao quá 3V

Trong các mạch thì thường dùng nguồn 5V nên để tránh việc đót cháy led thì cách đơn giản nhất là mắc thêm trở hạn dòng

Thông số làm việc của LED:

 Vậy nếu dùng nguồn 5V , thì áp rơi trên trở = 5 -2 = 3 V

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Motor DC

2.5.1 Giới thiệu Động cơ điện một chiều là máy điện chuyển đổi năng lượng điện một chiều sang năng lượng cơ (Máy điện chuyển đổi từ năng lượng cơ sang năng lượng điện là máy phát điện) Động cơ DC giảm tốc V1 là loại được lựa chọn và sử dụng nhiều nhất hiện nay cho các mô hình, thiết kế Robot đơn giản… Động cơ DC giảm tốc V1 có chất lượng tương đối cùng với khả năng dễ lắp ráp đem lại sự tiện dụng, thích hơp cho mô hình đồ án này

- Điện áp hoạt động: 3 9VDC

- Dòng điện tiêu thụ: 110 140Ma

Hình 2.19: Kích thước động cơ

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Gồm có 3 phần chính stator (phần cảm), rotor (phần ứng), và phần chỉnh lưu

(chổi than và cổ góp)

- Stator của động cơ điện 1 chiều thường là 1 hay nhiều cặp na m châm vĩnh cửu, hay nam châm điện

- Rotor có các cuộn dây quấn và được nối với nguồn điện một chiều

- Bộ phận chỉnh lưu, nó có nhiệm vụ là đổi chiều dòng điện trong khi chuyển động quay của rotor là liên tục

Pha 1: Từ trường của rotor cùng cực với stator, sẽ đẩy nhau tạo ra chuyển động quay của rotor

Pha 2: Rotor tiếp tục quay

Pha 3: Bộ phận chỉnh điện sẽ đổi cực sao cho từ trường giữa stator và rotor cùng dấu, trở lại pha 1

Hình 2.20: Nguyên lý hoạt động phần cảm và phần ứng

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Module LM2596

Mạch Giảm Áp LM2596 là một module giảm áp có khả năng điều chỉnh dòng ra lên đến 3A Khi cấp nguồn 9V vào module, nó cho phép giảm áp để cung cấp nguồn 3A với điện áp thấp hơn, chẳng hạn như 5V hoặc 3.3V.

 Module nguồn không sử dụng cách ly

 Kích thước mạch: 53mm x 26mm

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Hình 2.22: Hướng đi của dòng điện trong LM2596

Khi cấp nguồn thô vào chân INPUT+ và INPUT-, nguồn ra sẽ được nhận từ chân OUTPUT+ và OUTPUT- Điện áp đầu ra có thể được điều chỉnh bằng cách vặn biến trở trên module, với khả năng vặn lên đến 14 vòng.

 Dựa trên nguyên lý trên, Module LM2596 được áp dụng vào mô hình nhằm tùy chỉnh tốc độ băng tải hoạt động thông qua động cơ DC:

Hình 2.23: Điều chỉnh tốc độ Motor thông qua module LM2596

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Motor Servo

Servo là một loại động cơ điện đặc biệt, khác với động cơ thông thường chỉ cần cấp điện là quay liên tục Servo chỉ hoạt động khi được điều khiển với góc quay trong một khoảng giới hạn nhất định Các loại servo có kích thước, khối lượng và cấu tạo đa dạng; ví dụ, có loại chỉ nặng 9g, thường được sử dụng trên máy bay mô hình, trong khi một số loại khác có momen lực lên đến vài chục Newton/m hoặc có thiết kế mạnh mẽ và chắc chắn hơn.

Động cơ servo điều khiển bằng liên lạc vô tuyến, hay còn gọi là động cơ servo RC, thực chất không được điều khiển trực tiếp bằng sóng vô tuyến Thay vào đó, chúng được kết nối với máy thu vô tuyến trên các phương tiện như máy bay hoặc xe hơi, và nhận tín hiệu từ máy thu này để hoạt động.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

2.7.2 Hoạt động & Cấu tạo Động cơ DC và động cơ bước vốn là những hệ hồi tiếp vòng hở Việc thiết lập một hệ thống điều khiển để xác định những gì ngăn cản chuyển động quay của động cơ hoặc làm động cơ không quay cũng không dễ dàng

Động cơ servo được thiết kế cho các hệ thống hồi tiếp vòng kín, cho phép theo dõi vận tốc và vị trí khi động cơ quay Nếu có bất kỳ trở ngại nào ngăn cản chuyển động của động cơ, cơ cấu hồi tiếp sẽ phát hiện tín hiệu ra chưa đạt vị trí mong muốn Mạch điều khiển sẽ tiếp tục điều chỉnh sai lệch để động cơ đạt được độ chính xác cần thiết.

4 Signal Wire (Yellow or White)

5 Negative or Ground Wire (Black)

8 Servo Attachment Horn/Wheel/Arm

Động cơ servo có cấu tạo cơ bản bao gồm mạch điều khiển và chuỗi bánh răng kết nối với vôn kế Tín hiệu số được gửi đến mạch điều khiển để khởi động động cơ, và vị trí của trục vôn kế cho biết vị trí trục ra của servo Khi vôn kế đạt vị trí mong muốn, mạch điều khiển sẽ tắt động cơ Mặc dù động cơ servo có khả năng quay liên tục, nhưng chức năng chính của nó là đạt được góc quay chính xác trong khoảng giới hạn.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Hình 2.26: Sơ đồ nối dây của Micro Servo

- Mô men xoắn: 1.6kg/cm

- Tốc độ hoạt động: 0,12sec/60degree

- Điện áp hoạt động: 4.8VDC~5VDC

- Nhiệt độ hoạt động: 0 ºC – 55 ºC

Hình 2.27: Kích thước Micro Servo

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

2.7.4 Điều biến độ rộng xung

Trục của động cơ servo R/C được định vị thông qua kỹ thuật điều biến độ rộng xung (PWM), trong đó servo phản ứng với một chuỗi xung số ổn định Mạch điều khiển nhận tín hiệu số với các xung biến đổi từ 1 – 2 ms, được gửi đi 50 lần mỗi giây Quan trọng là chiều dài của các xung, không phải số lượng xung trong một giây, với servo yêu cầu khoảng 30 – 60 xung mỗi giây Nếu số lượng xung quá thấp, độ chính xác và công suất duy trì servo sẽ bị giảm.

Với độ dài xung 1 ms, servo được điều khiển quay theo một chiều (giả sử là chiều kim đồng hồ):

Hình 2.28: Điều khiển trục ra của động cơ bằng cách điều chế độ rộng xung

Với độ dài xung 2 ms, servo sẽ quay theo chiều ngược lại, một kỹ thuật được gọi là tỉ lệ số, trong đó chuyển động của servo tỉ lệ với tín hiệu số điều khiển.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Các servo có khả năng quay ở các góc khác nhau khi nhận tín hiệu từ 1 – 2 ms Servo chuẩn thường quay từ 90 độ đến 180 độ khi nhận đủ chiều dài xung Tuy nhiên, nếu cố gắng điều khiển servo vượt quá giới hạn cơ học của nó, có thể gây hư hỏng bánh răng động cơ sau vài giây.

2.7.6 Phân loại và các kích thước đặc biệt

Ngoài servo kích thước chuẩn dùng trong robot và mô hình điều khiển vô tuyến cón có các loại servo R/C khác:

Servo tỉ lệ ẳ / tỉ lệ lớn (quarter-scale / large-scale servo) có kích thước gấp khoảng 2 lần servo chuẩn và công suất lớn hơn rõ rệt Loại servo này thường được sử dụng trong các mô hình máy bay lớn và làm động cơ công suất cho robot.

Servo nhỏ (mini-micro servo) có kích thước nhỏ hơn khoảng 2 lần so với servo chuẩn Mặc dù không mạnh bằng servo chuẩn, loại servo này rất hữu ích trong những không gian hẹp, thường được sử dụng trong mô hình máy bay hoặc xe hơi.

- Servo tời buồm (sail minch servo): mạnh nhất, dùng để điều khiển các dây thừng của buồm nhỏ và buồm chính trong mô hình thuyền buồm

Servo thu bộ phận hạ cánh (landing-gear retraction servo) là thiết bị quan trọng trong mô hình máy bay vừa và lớn, giúp thu gọn bộ phận hạ cánh Để đảm bảo hiệu suất hoạt động, servo cần có góc quay tối thiểu là 170 độ Thông thường, các servo này có kích thước nhỏ hơn tiêu chuẩn do không gian hạn chế trong mô hình máy bay.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

MÔ HÌNH ĐẾM & PHÂN LOẠI SẢN PHẨM

Giới thiệu

Mô hình hệ thống trong Đồ án “Mô hình phân loại và đếm sản phẩm theo chiều cao sử dụng Arduino” cho thấy rõ ràng ý tưởng ứng dụng Arduino trong ngành sản xuất Việc thiết kế mô hình phân loại sản phẩm và lập trình Arduino không chỉ làm cho ý tưởng này trở nên khả thi mà còn mở ra nhiều cơ hội mới trong công nghiệp.

Khi sản phẩm di chuyển trên băng tải, cảm biến E18-D80NK kết hợp với động cơ Servo sẽ phân loại sản phẩm và sử dụng LED 7 đoạn để hiển thị số lượng sản phẩm Điều này giúp chúng ta hiểu rõ hơn về quy trình phân loại sản phẩm trong thực tế.

Hình 3.2: Board mạch chính của hệ thống

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Các phần mềm thiết kế

Arduino là một môi trường phát triển mã nguồn mở, giúp người dùng dễ dàng viết và tải code lên board mạch Nó được xây dựng dựa trên ngôn ngữ lập trình Java và các phần mềm mã nguồn mở khác.

Kể từ tháng 3 năm 2015, Arduino IDE (Intergrated Devalopment Editor – môi trường phát triển thích hợp) đã được phổ biến tại rất nhiều nơi với giao diện trực quan

Ngôn ngữ phổ quát cho Arduino là C và C++ Do đó phần mềm phù hợp với những người dùng quen thuộc các ngôn ngữ này

Phần mềm Arduino bao gồm nhiều thư viện phong phú như EEPROM, Firmata, GSM, Servo, TFT, và Wifi Sự đa dạng của các thư viện này ngày càng được mở rộng nhờ vào sự đóng góp tích cực từ cộng đồng Arduino toàn cầu.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Proteus là phần mềm mô phỏng mạch điện tử do Labcenter Electronics phát triển, hỗ trợ mô phỏng hầu hết các linh kiện điện tử phổ biến, đặc biệt là các vi điều khiển như PIC, 8051, AVR, và nhiều loại khác.

Phần mềm bao gồm 2 mảng chính là ISIS cho phép mô phỏng mạch điện tử và ARES dùng để vẽ mạch in

Hình 3.5: Giao diện chính của Proteus

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Sơ đồ khối

Hình 3.6: Sơ đồ khối mô hình đếm & phân loại sản phẩm

 Khối nguồn gồm các linh kiện tác động đến công suất, dòng điện (adapter, module nguồn ) cung cấp năng lượng thích hợp cho mô hình hệ thống

Hình 3.7: Adapter AC→DC cho hệ thống

 Khối hiển thị (Led 7 đoạn): hiển thị số lượng đếm được từ cảm biến

Hình 3.8: các cặp Led 7 đoạn

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

 Khối phân loại (Băng tải, Servo): phân các sản phẩm thành nhiều loại theo yêu cầu của mô hình đề tài

 Khối tín hiệu là các cảm biến E18D80NK: phát hiện vật thể và truyền tín hiệu về khối xử lý để mã hóa dữ liệu

Hình 3.9: Các Servo, cảm biến và băng tải

 Khối xử lý (Arduino Uno R3, IC 74HC595…): xử lý tín hiệu từ cảm biến và xuất dữ liệu được mã hóa đến các khối hiển thị, khối phân loại

Hình 3.10: Board mạch cùng các linh kiện

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Nguyên lý hoạt động

Khi được cấp nguồn, mạch sẽ hoạt động theo chương trình được thiết lập trên Arduino

Hình 3.11: Sơ đồ nguyên lý hoạt động

Chu trình hoạt động của mô hình hệ thống này được bắt đầu từ sự thu nhận tín hiệu của các cảm biến

Các tín hiệu được xử lý tại trung tâm, từ đó xuất lệnh tương thích cho Servo và chuỗi Led 7 đoạn, nhằm thực hiện đúng yêu cầu của đề tài.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Trong trạng thái bình quân, cảm biến E18-D80NK cung cấp xung mức cao cho bộ xử lý trung tâm, cho phép Arduino Uno R3 duy trì hiện trạng thông qua mã lập trình Hai IC “dịch chốt” 74HC595 tiếp tục quét các LED 7 đoạn, với một IC đảm nhận việc hiển thị các con số và IC còn lại quản lý vị trí hiển thị Đồng thời, động cơ Servo giữ thanh gạc phân loại ở góc 0 độ.

Hình 3.12: Mô hình khi chưa có tác động từ cảm biến

Khi đối tượng tác động, dòng điện qua cảm biến E18-D80NK tới GND, tạo ra xung mức thấp cho Arduino Uno R3 Dữ liệu sau đó được xử lý và truyền vào 2 IC 74HC595 để thay đổi hiển thị trên đèn LED 7 đoạn Đồng thời, động cơ Servo quay thanh gạc phân loại một góc 50 độ, giúp đưa đối tượng ra khỏi băng tải.

Hình 3.13: Mô hình hoạt động khi có tín hiệu từ cảm biến

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Mạch in

Mạch in có thể được thiết kế bằng các phần mềm chuyên dụng như OrCad, Proteus, EsyEDA, và KitCad Trong đồ án này, mạch in được vẽ bằng phần mềm Proteus để thuận tiện cho việc tích hợp mô phỏng.

Hình 3.14: Bản thiết kế mạch in

Trong quá trình làm mạch, do tay nghề còn non trẻ, thiếu kinh nghiệm nên mạch thiếu sự thẩm mỹ cũng như tính chuyên nghiệp

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Lưu đồ thuật toán

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Code – chương trình

The code initializes two servo objects and defines several pin assignments for controlling the servos and sensors Specifically, it sets up latch, clock, and data pins for two servos, along with a reset pin and three sensor pins Additionally, it declares variables to store the current and last states of the sensors, as well as variables for further processing.

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 47 const int Seg[10] = {

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 48 void setup()

The code initializes several pins for output and input functions, setting up two sets of pins for latching, clock, and data It also configures a reset pin and three sensor inputs Additionally, two servos are attached to specific pins for control.

} void Delay(float delayTime, void (func)()){ unsigned long endTime = millis() + delayTime; while(millis() < endTime)

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 49 void Display(){ led7segPlus (c1,1); delay(1); led7segPlus (b1,2); delay(1); led7segPlus (c2,3); delay(1); led7segPlus (b2,4); delay(1); led7segPlus (c3,5); delay(1); led7segPlus (b3,6); delay(1);} void reset()

SensorState1 = digitalRead(Sensor1); if ((SensorState1 != LastSensorState1)&(SensorState1 == 0))

{ EEPROM.write(1,EEPROM.read(1)+1); if (EEPROM.read(1) > 99) { EEPROM.write(1,0);}

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 50 c1 = EEPROM.read(1) % 10; b1 = EEPROM.read(1) / 10; servo1.write(50);

SensorState2 = digitalRead(Sensor2); if ((SensorState2 != LastSensorState2)&(SensorState2 == 0))

EEPROM.write(2,EEPROM.read(2)+1); if (EEPROM.read(2) > 99) { EEPROM.write(2,0);} c2 = EEPROM.read(2) % 10; b2 = EEPROM.read(2) / 10; servo2.write(50);

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 51 if ((SensorState3 != LastSensorState3)&(SensorState3 == 0))

EEPROM.write(3,EEPROM.read(3)+1); if (EEPROM.read(3) > 99) { EEPROM.write(3,0);} c3 = EEPROM.read(3) % 10; b3 = EEPROM.read(3) / 10;

{ servo1.write(0); servo2.write(0); if (digitalRead(resetPin)!=0) { reset();}

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

SVTH: Hoàng Nghĩa Hiệp 52 void led7segPlus (int number, int pin)

{ digitalWrite(latchPin1, 0) ; shiftOut(dataPin1, clockPin1, MSBFIRST, led[pin]); digitalWrite(latchPin2, 0); shiftOut(dataPin2, clockPin2, MSBFIRST, Seg[number]); digitalWrite(latchPin2, 1); digitalWrite(latchPin1, 1);

Báo cáo Đồ án tốt nghiệp GVHD: ThS Nguyễn Lương Thanh Tùng

Ngày đăng: 04/05/2023, 20:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w