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