Professional Documents
Culture Documents
Báo Cáo Đồ Án Tốt Nghiệp
Báo Cáo Đồ Án Tốt Nghiệp
ĐỒ ÁN TỐT NGHIỆP
1
8. Khối thả hàng.........................................................................................................19
9. Khối điều khiển băng tải.......................................................................................19
10. Khối truyền tín hiệu...........................................................................................20
11. Mạch điều khiển tải được thiết kế bằng phần mềm Altium..........................20
12. Mạch in sau khi hoàn thành thiết kế...................................................................20
13. Hình ảnh sản phẩm sau khi thiết kế:...................................................................21
III. Giới thiệu về LabVIEW trong Báo cáo Đồ án Phân loại Sản phẩm theo Màu sắc
bằng Xử lý Ảnh.................................................................................................................21
1. Giới thiệu về LabVIEW...........................................................................................21
2. Ứng dụng của LabVIEW trong dự án phân loại sản phẩm theo màu sắc..........21
3. Ưu điểm của việc sử dụng LabVIEW.....................................................................23
4. Kết luận.....................................................................................................................24
CHƯƠNG 3. KẾT LUẬN, CODE ĐIỀU KHIỂN VÀ TÀI LIỆU THAM KHẢO........24
I. Kết luận.........................................................................................................................24
1. Những nhiệm vụ đã thực hiện:................................................................................24
2. Những thuận lợi và khó khăn khi thực hiện đề tài:..............................................24
II. Code điều khiển...........................................................................................................24
III. Tài liệu tham khảo....................................................................................................32
2
LỜI MỞ ĐẦU
Ngày nay, ngành kĩ thuật điện tử là ngành kĩ thuật mũi nhọn, hiện đại,
là đòn bẩy để giúp các ngành khoa học kỹ thuật khác phát triển, chính
vì thế nó được ứng dụng rộng rãi trong mọi lĩnh vực sản xuất và đời
sống xã hội.
Và đối với ngành Điện tử công nghiệp là ngành, nghề mà người hành
nghề thực hiện lắp đặt, bảo trì, bảo dưỡng, vận hành các thiết bị điện,
điện tử, thiết bị điều khiển của các hệ thống công nghiệp, hệ thống
giám sát an ninh, cảnh báo an toàn, hệ thống truyền thông công
nghiệp, hệ thống điện mặt trời, đáp ứng yêu cầu bậc 5 trong Khung
trình độ quốc gia Việt Nam. Người hành nghề Điện tử Công nghiệp
thường làm việc trong môi trường công nghiệp như: nhà máy, xí
nghiệp, khu chế xuât, các tòa nhà cao tầng.
Ý thức được tầm quan trọng của ngành Điện tử công nghiệp nên vì
vậy đòi hỏi người hành nghề phải có kĩ năng tư duy nhạy bén của
mình, năng động, đam mê tìm tòi học hỏi và thức thời với các công
nghệ mới tiên tiến trên thế giới.
Ngoài ra người học Điện tử công nghiệp cùng cần có khả năng làm
việc độc lập, tổ chức làm việc nhóm, có đạo đức lương tâm nghề
nghiệp, tác phong công nghiệp, thực hành tiết kiệm năng lượng, bảo
vệ môi trường. Ngành này mang tính phủ sóng diện rộng nên chịu ảnh
hưởng từ các yếu tố ngoại tác động rất nhiều, người kỹ sư điện tử –
viễn thông cần kiên trì, nhẫn nại và có tinh thần vững vàng để ứng
phó trước các sự cố hệ thống.
3
Hơn hết, để thành công trong bất kỳ lĩnh vực nào, người học cần có
đam mê thật sự, có mục tiêu phấn đấu và sự quyết tâm theo đuổi công
việc học tập, nghiên cứu phát triển trong dài hạn.
Trong quá trình thực hiện đề tài này, chúng em đã luôn dành thời gian
để nghiên cứu, tìm tòi và luôn trau dồi kiến thức để sản phẩm của
chúng em thuyết trình giới thiệu tới các thầy một cách chi tiết và đầy
đủ, một cách hoàn thiện về đồ án của chúng em. Và trong quá trình
chúng em báo cáo, bảo vệ đồ án có những sai sót, rất mong được các
thầy cô góp ý thêm để cho sản phẩm chúng em đi đến sự tối ưu và
hoàn thiện nhất.
4
LỜI CẢM ƠN
Thời gian 3 năm theo học tại trường có lẽ không phải là thời gian
quá dài nhưng cũng sẽ không phải là thời gian quá ngắn đối với
chúng em. Thời gian như dòng chảy mà ngày nhập học đầu tiên
với chúng em mới như ngày hôm qua. Trong suốt quá trình học
tập chúng em đã học được rất nhiều điều bổ ích, những giá trị kiến
thức được truyền tải từ các thầy cô. Từ những cậu tân sinh viên,
chúng em bây giờ sắp kết thúc chương trình học của mình tại đây.
Chúng em xin chân thành cảm ơn nhà trường và các thầy cô trong
khoa đã tạo điều kiện cho chúng em được học tập không ngừng,
truyền dạy những kiến thức bổ ích để sau này chúng em có thể
trưởng thành vững bước ra ngoài lập nghiệp để tự hào khẳng định
bản thân mình là những chàng kỹ sư, kỹ thuật viên vững chắc
chuyên môn của trường Cao Đẳng Nghề Bách Khoa.
Cuối cùng, nhóm chúng em xin gửi lời cảm ơn chân thành và sâu
sắc tới Thầy Th.s Nguyễn Minh Đức – người hướng dẫn chúng
em. Cảm ơn thầy đã hết sức tận tình, tạo nhiều điều kiện tốt nhất
để chúng em có thể hoàn thành đề tài này thuận lợi.
5
CHƯƠNG 1: NGHIÊN CỨU VÀ KHẢO SÁT ĐỀ TÀI
Là một hệ thống tự động sử dụng các cảm biến và thiết bị máy móc để phân loại
sản phẩm theo các tiêu chí khác nhau, chẳng hạn như kích thước, trọng lượng,
màu sắc, hình dạng,v.v..
Hệ thống phân loại sản phẩm không chỉ giúp mọi người dễ dàng xác định và chọn
lựa sản phẩm một cách thuận lợi, mà còn đóng vai trò quan trọng trong quản lý và
phân phối hàng hóa cho doanh nghiệp.
Sau đây là các hệ thống phân loại sản phẩm phổ biến nhất 2024
Theo mã vạch
Hệ thống phân loại sản phẩm theo mã vạch Barcode hoặc mã QR giúp lựa chọn
sản phẩm dựa trên thông tin chi tiết như lô - ngày sản xuất, model. Đây là phương
pháp phổ biến được sử dụng trong việc phân loại kiện hàng, bưu phẩm, sản phẩm
được đóng thùng carton, túi, và gắn mã vạch barcode, mã QR. Hệ thống phân loại
tự động này có hiệu suất cao gấp 3-5 lần so với cách quét mã vạch áp dụng
phương pháp thủ công, với khả năng đạt 10.000 sản phẩm/giờ.
6
Theo khối lượng
Hệ thống phân loại sản phẩm phân loại theo khối lượng áp dụng cho các ngành
thực phẩm, thủy hải sản, nông sản, để đảm bảo chất lượng và kích thước sản
phẩm.
Theo màu sắc
Hệ thống phân loại sản phẩm theo màu sắc sử dụng công nghệ vision và
camera, phù hợp cho ngành nông nghiệp, thực phẩm, dầu, và nhiều ngành khác.
Sử dụng camera độ phân giải cao kiểm tra sản phẩm, công nghệ vision xử lý ảnh,
với năng suất từ 0.8-1.5 tấn/giờ, đặc biệt đảm bảo xác suất chính xác > 99%.
Theo kích thước
7
Phân loại sản phẩm dựa trên kích thước, đặc biệt hiệu quả trong các ngành thực
phẩm, nông sản, và trái cây, với độ chính xác cao, hoạt động ổn định, và năng
suất 3-5 tấn/giờ, tương đương 1000-1100 sản phẩm/phút.
8
Băng tải là một thiết bị cơ khí quan trọng được sử dụng rộng rãi trong nhiều
ngành công nghiệp nhằm tăng hiệu suất và giảm chi phí vận hành. Chúng giúp di
chuyển nguyên liệu, hàng hóa một cách nhanh chóng và hiệu quả, đồng thời tối
ưu hóa quy trình sản xuất và logistics. Là một phần quan trọng trong việc tự động
hóa các quy trình công nghiệp, giúp tối ưu hóa hiệu quả và giảm chi phí. Sự phát
triển của công nghệ mới tiếp tục mở ra nhiều cơ hội cải tiến và ứng dụng cho hệ
thống băng tải trong tương lai.
Băng tải không chỉ giúp tối ưu hóa quy trình sản xuất và vận chuyển trong công
nghiệp mà còn có những ứng dụng thiết thực và đa dạng trong cuộc sống hàng
ngày. Việc sử dụng băng tải giúp tăng hiệu quả, tiết kiệm thời gian và chi phí,
đồng thời cải thiện độ an toàn và chất lượng trong nhiều lĩnh vực khác nhau.
9
- Vận hành dễ dạng, tiện lợi.
- Hệ thống chắc chắn và bền bỉ.
III. Ưu nhược điểm của sản phẩm, hướng thực hiện đề tài và ứng
dụng của sản phẩm
1. Ưu nhược điểm của hệ thống phân loại tự động
1.1. Ưu điểm
Ưu điểm của hệ thống phân loại sản phẩm tự động bao gồm:
10
2. Hướng thực hiện đề tài
- Đề tải cơ bản đáp ứng được những yêu cầu đặt ra tuy nhiên để sản phẩm
hoàn thiện được hơn nữa thì đòi hỏi cần được cải tiến và nghiên cứu thêm.
- Ngoài những gì mà em tìm hiểu được, có thể phát triển hơn nữa đề tài
điều khiển cánh tay robot gắp sản phẩm trên băng chuyền thành nhiều
phiên bản hơn nữa, ví như cánh tay robot gắp và phân loại sản phẩm theo
kích thước, màu hoặc nhiệt độ.
- Ngoài ra đề tài này có thể phát triển thành cánh tay robot dùng để gắp
linh kiện, hay hàn, cắt hay khoan, hoặc là cánh tay robot tự động vẽ theo
mẫu có sẵn...
- Ngoài những hướng phát triển mà em nghĩ mình có khả năng có thể làm
được trong tương lai với lượng kiến thức đã nghiên cứu, và cần phải tìm hiểu
hơn. Vì Robot phát triển đa dạng nên mong thầy có thể bổ sung và hướng
dẫn em nhiều hơn nữa.
Nghiên cứu về cấu tạo và các phương pháp điều khiển của hệ thống phân
loại sản phẩm theo màu sắc, xây dựng những giải pháp phần cứng cũng như
phần mềm để chế tạo bộ diều khiển hệ thống phân loại sản phẩm theo màu
sắc nhằm áp dụng trong việc giảng dạy và học tập tại trường Cao đẳng nghề
Bách Khoa Hà Nội.
Ngoài ra, việc nghiên cứu và khảo sát hệ thống phân loại sản phẩm theo
màu sắc còn đóng vai trò quan trọng trong việc phát triển công nghệ và đổi
mới sản xuất, góp phần vào sự nghiên cứu khoa học và ứng dụng công nghệ
cao trong đời sống sản xuất hàng ngày.
1 Chọn đề tài, -Phân tích từng đề tài, đưa ra lựa Lê Hồng Anh
nên ý tưởng chọn thích hợp cho nhóm. => Nên ý Nguyễn Văn Giáp
tưởng sơ bộ Phạm Thế Mạnh
2 Lập kế hoạch -Lên lịch thực hiện, phân công công Lê Hồng Anh
thực hiện việc cho các thành viên.
3 Mô tả đề tài -Đưa ra mô tả về đề tài cũng như các Nguyễn Văn Giáp
ứng dụng của đề tài
4 Đưa ra yêu -Đưa ra yêu cầu mà đề tài đặt ra Phạm Thế Mạnh
cầu bài toán gồm: yêu cầu chức năng và kĩ thuật.
7 Họp bàn -Tập hợp công việc của các thành Lê Hồng Anh
thống nhất, viên. Nguyễn Văn Giáp
viết bản word -Bắt đầu viết báo cáo bản word Phạm Thế Mạnh
8 Làm mạch -Vẽ mạch in Phạm Thế Mạnh
-Hàn mạch Nguyễn Văn Giáp
-Test mạch
9 Hoàn thiện -Test sản phẩm Lê Hồng Anh
sản phẩm Nguyễn Văn Giáp
Phạm Thế Mạnh
12
Arduino Nano là một bảng vi điều khiển thân thiện, nhỏ gọn, đầy đủ. Arduino
Nano nặng khoảng 7g với kích thước từ 1,8cm - 4,5cm.
13
Sơ đồ chân
Điểm tốt về ESP32, giống như ESP8266 là các thành phần RF tích hợp của nó
như bộ khuếch đại công suất, bộ khuếch đại nhận tiếng ồn thấp, công tắc ăng-ten,
bộ lọc và Balun RF. Điều này làm cho việc thiết kế phần cứng xung quanh ESP32
rất dễ dàng vì bạn cần rất ít thành phần bên ngoài.
Một điều quan trọng khác cần biết về ESP32 là nó được sản xuất bằng công nghệ
40 nm công suất cực thấp của TSMC. Vì vậy, việc thiết kế các ứng dụng hoạt
động bằng pin như thiết bị đeo, thiết bị âm thanh, đồng hồ thông minh, ..., sử
dụng ESP32 sẽ rất dễ dàng.
14
quan trọng của ESP32 tại đây. Nhưng để có bộ thông số kỹ thuật hoàn chỉnh, bạn
nên tham khảo datasheet.
Bộ vi xử lý LX6 32-bit lõi đơn hoặc lõi kép với xung nhịp lên đến 240 MHz.
520 KB SRAM, 448 KB ROM và 16 KB SRAM RTC.
Hỗ trợ kết nối Wi-Fi 802.11 b / g / n với tốc độ lên đến 150 Mbps.
Hỗ trợ cho cả thông số kỹ thuật Bluetooth v4.2 và BLE cổ điển.
34 GPIO có thể lập trình.
18 kênh SAR ADC 12 bit và 2 kênh DAC 8 bit
Kết nối nối tiếp bao gồm 4 x SPI, 2 x I2C, 2 x I2S, 3 x UART.
Ethernet MAC cho giao tiếp mạng LAN vật lý (yêu cầu PHY bên ngoài).
1 bộ điều khiển host cho SD / SDIO / MMC và 1 bộ điều khiển slave cho SDIO /
SPI.
Động cơ PWM và 16 kênh LED PWM.
Khởi động an toàn và mã hóa Flash.
Tăng tốc phần cứng mật mã cho AES, Hash (SHA-2), RSA, ECC và RNG.
15
Mạch điều khiển động cơ L298 DC Motor Driver có khả năng điều khiển 2 động
cơ DC, dòng tối đa 2A mỗi động cơ, mạch tích hợp diod bảo vệ và IC nguồn
7805 giúp cấp nguồn 5VDC cho các module khác (lưu ý chỉ sử dụng nguồn 5V
này nếu nguồn cấp VCC < 12VDC).
Thông số kỹ thuật:
IC chính: L298
Điện áp hoạt động: 5~30VDC
Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên
áp cấp vào càng cao, dòng càng nhỏ, công suất có định 25W).
Dòng tối đa cho mỗi cầu H là: 2A
Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss
Kích thước: 43x43x27mm
Sơ đồ kết nối
16
6. Băng tải (Conveyor Belt): Là thành phần chính của hệ thống, được làm từ các
vật liệu như cao su, PVC, PU, hoặc kim loại.
7. Khung băng tải (Conveyor Frame): Cấu trúc đỡ toàn bộ hệ thống, thường
làm bằng thép, nhôm hoặc inox.
8. Động cơ (Motor): Cung cấp năng lượng để vận hành băng tải, thường là động
cơ điện hoặc động cơ thủy lực.
9. Bộ giảm tốc (Gearbox): Giảm tốc độ quay của động cơ để phù hợp với tốc độ
di chuyển của băng tải.
10. Bộ căng băng (Tensioning Device): Duy trì độ căng phù hợp cho băng tải để
tránh trượt hoặc lỏng.
11. Con lăn dẫn hướng (Guiding Rollers): Đảm bảo băng tải luôn đi đúng
hướng và không bị lệch.
12. Thanh chắn (Skirting Rubber): Giúp giữ hàng hóa không bị rơi ra ngoài
trong quá trình vận chuyển. Mỗi linh kiện trên đóng một vai trò quan trọng trong
việc đảm bảo hệ thống băng tải hoạt động hiệu quả và bền bỉ. Việc lựa chọn và
bảo trì các linh kiện này cần phải được thực hiện cẩn thận để tránh gián đoạn
trong quá trình sản xuất.
17
Chức năng chính của mạch điểu khiển tay robot 5 bậc là điểu khiển tay robot gắp
vật từ băng tải và thả vào vị trí đã thiết lập
Khối điểu khiển nhận tín hiệu từ đầu vào và bật đèn led rồi truyền tín hiệu
tới khối điều khiển PWM thông qua giao thức I2C, từ đó điều khiển các động cơ
servo của tay robot.
18
Khối điều khiển PWM dùng để điều khiển nhiều servo motor thông qua giao tiếp
I2C với vi điều khiển.
Khối nhận tín hiệu nhận tín hiệu 5V chuyển đổi ra điện áp 3.3V từ mạch điểu
khiển băng tải sau đó chuẩn hóa các tín hiệu này để truyền đến khối điều khiển.
19
4.Mạch điểu khiển băng tải
Chức năng chính là điều khiển hệ thống băng tải và các cảm biến khoảng cách để
dừng băng tải lại và servo để thả hàng.
5. Khối nguồn
Cung cấp nguồn cho khối điều khiển trung tâm , các cảm biến, băng tải và
servo.
Chức năng chính là nhận các tín hiệu từ cảm biến để điều khiển băng tải và servo
rồi truyền đến mạch điều khiển tay robot 5 bậc.
20
7. Khối cảm biến
Tác dụng chính của khối ra truyền tín hiệu từ cảm biến đến khối điều khiển trung
tâm để dừng băng tải.
Tác dụng chính của khối thả hàng là nhận tín hiệu từ khối điều khiển trung tâm
truyền đến servo làm cho servo quay để thả hàng ra băng tải.
Tác dụng chính của khối là truyền tín hiệu từ khối điều khiển trung tâm truyền
đến module L298 làm cho băng tải chạy.
21
10.Khối truyền tín hiệu
Tác dụng chính của khối truyền tín hiệu là truyền tín hiệu từ khối điều khiển
trung tấm đến mạch điều khiển tay robot 5 bậc
11. Mạch điều khiển tải được thiết kế bằng phần mềm Altium.
22
Hình ảnh sản phẩm sau khi thiết kế:
III. Giới thiệu về LabVIEW trong Báo cáo Đồ án Phân loại Sản
phẩm theo Màu sắc bằng Xử lý Ảnh
1. Giới thiệu về LabVIEW
- Giao diện trực quan: Giúp lập trình viên dễ dàng tạo ra các ứng dụng
bằng cách kéo và thả các khối chức năng.
- Tích hợp phần cứng: Hỗ trợ kết nối và giao tiếp với nhiều thiết bị và
phần cứng đo lường như cảm biến, bộ chuyển đổi tín hiệu, camera, và các
thiết bị điều khiển khác.
- Xử lý dữ liệu mạnh mẽ: Khả năng thu thập, phân tích và xử lý dữ liệu
với các thư viện và hàm phong phú.
- Đa nền tảng: Hỗ trợ nhiều hệ điều hành như Windows, macOS, và
Linux.
- Khả năng mở rộng: Cho phép người dùng phát triển các ứng dụng phức
tạp và tùy chỉnh theo nhu cầu cụ thể.
2. Ứng dụng của LabVIEW trong dự án phân loại sản phẩm theo màu sắc
Trong dự án này, LabVIEW được sử dụng để thiết kế và triển khai hệ thống phân
loại sản phẩm theo màu sắc dựa trên xử lý ảnh. Các bước chính bao gồm:
23
2.1. Thu thập và tiền xử lý dữ liệu
LabVIEW cung cấp các công cụ và driver hỗ trợ kết nối với các loại
camera công nghiệp thông qua các giao thức như USB, GigE, và Camera
Link.
Ví dụ: Sử dụng giao thức GigE Vision để kết nối với một camera công nghiệp
cho phép chụp ảnh với độ phân giải cao và tốc độ chụp nhanh.
Dữ liệu hình ảnh từ camera sẽ được chụp và lưu trữ dưới dạng các tệp hình
ảnh hoặc trong bộ nhớ để phục vụ cho quá trình xử lý tiếp theo.
Ví dụ: Sử dụng các hàm của LabVIEW để chụp ảnh liên tục từ camera và lưu trữ
vào bộ nhớ đệm trước khi tiến hành xử lý.
2.2. Xử lý hình ảnh
Sử dụng các hàm xử lý ảnh của LabVIEW để chuyển đổi hình ảnh từ
không gian màu RGB sang các không gian màu khác như HSV (Hue,
Saturation, Value), giúp việc phân tích màu sắc trở nên dễ dàng hơn.
Ví dụ: Sử dụng hàm IMAQ ColorSpaceConversion để chuyển đổi hình ảnh từ
RGB sang HSV.
Áp dụng các kỹ thuật phân đoạn để tách các vùng màu sắc khác nhau trong
hình ảnh, giúp nhận diện và phân loại các sản phẩm dựa trên màu sắc.
Ví dụ: Sử dụng hàm IMAQ Threshold để phân đoạn hình ảnh dựa trên ngưỡng
màu sắc cụ thể.
Xác định các đặc trưng màu sắc của từng sản phẩm bằng cách sử dụng các
hàm phân tích thống kê và biểu đồ màu sắc.
Ví dụ: Sử dụng hàm IMAQ ColorHistogram để tạo biểu đồ màu và phân tích tỷ
lệ các màu sắc trong hình ảnh.
24
2.3. Phân loại sản phẩm
Áp dụng các thuật toán phân loại dựa trên đặc trưng màu sắc đã trích xuất, như k-
NN (k-nearest neighbors) hoặc SVM (Support Vector Machine).
Ví dụ: Sử dụng thuật toán k-NN để phân loại sản phẩm dựa trên khoảng
cách màu sắc trong không gian màu HSV.
Thiết kế giao diện người dùng trực quan để hiển thị kết quả phân loại và
điều khiển hệ thống.
Ví dụ: Tạo bảng điều khiển (dashboard) với các biểu đồ và thông báo để hiển thị
kết quả phân loại sản phẩm theo thời gian thực.
2.4. Điều khiển hệ thống
Sử dụng LabVIEW để điều khiển các thiết bị ngoại vi như băng chuyền,
robot gắp sản phẩm thông qua các giao thức như Modbus, OPC, hoặc giao
tiếp trực tiếp với các PLC (Programmable Logic Controller).
Ví dụ: Sử dụng LabVIEW để điều khiển động cơ băng chuyền và robot gắp sản
phẩm dựa trên kết quả phân loại màu sắc.
Giúp người dùng dễ dàng thiết kế và triển khai các ứng dụng xử lý ảnh mà
không cần nhiều kiến thức về lập trình truyền thống.
LabVIEW cho phép kết nối và giao tiếp với nhiều loại thiết bị khác nhau, giúp
xây dựng hệ thống tự động hóa toàn diện.
Cung cấp nhiều hàm và thư viện xử lý ảnh mạnh mẽ, giúp tiết kiệm thời
gian phát triển.
25
Cho phép người dùng phát triển các ứng dụng phức tạp và tùy chỉnh theo nhu cầu
cụ thể, đồng thời hỗ trợ nhiều loại phần cứng và giao thức giao tiếp.
4. Kết luận
LabVIEW là một công cụ mạnh mẽ và linh hoạt cho các ứng dụng xử lý ảnh và tự
động hóa. Trong dự án phân loại sản phẩm theo màu sắc, LabVIEW không chỉ hỗ
trợ việc thu thập và xử lý dữ liệu hình ảnh mà còn giúp điều khiển hệ thống một
cách hiệu quả. Với khả năng tích hợp phần cứng tốt và giao diện người dùng thân
thiện, LabVIEW là lựa chọn lý tưởng cho các ứng dụng đo lường và điều khiển
hiện đại.
- Tìm hiểu được quá trình hình thành và phát triển của Robot.
- Tìm hiểu về arduino.
- Nghiên cứu, tìm hiểu phần cứng của đề tải.
- Sưu tầm, tìm kiếm tài liệu tham khảo phục vụ cho việc nghiên cứu.
- Nghiên cứu, học hỏi các phương pháp lập trình arduino.
+ Thuận lợi:
- Được thầy cô và các bạn hỗ trợ hết mình.
- Được tiếp xúc với môi trường năng động ở xưởng thực hành làm tăng niềm đam
mê tìm tòi học hỏi.
+ Khó khăn:
- Vì vừa nghiên cứu vừa đi làm và phải đảm bảo việc hoàn thành đồ án cho kịp
tiến độ nên sự phân bổ thời gian chưa được nhiều.
- Tài liệu chủ yếu về đề tải chủ yếu là tiếng anh nên việc dịch có những chỗ chưa
chuẩn xác
II. Code điều khiển
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
26
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
int vitri = 0;
// our servo # counter
uint8_t servonum = 0;
int x1;
int x2;
int ty1;
int y2;
int z1;
int z2;
int goctha;
int topulse(int goc) //chuyển góc thành xung
{
int xung = map(goc, 0, 180, SERVOMIN, SERVOMAX);
return xung;
}
int topulse1(int goc) //chuyển góc thành xung
{
int xung1 = map(goc, 0, 180, USMIN, USMAX);
return xung1;
} //-------------------------------------------------
void diemcho() {
delay(20);
pwm.writeMicroseconds(3, topulse1(92));//z1
pwm.writeMicroseconds(7, 600);//y2
pwm.writeMicroseconds(8, 900);//y1
pwm.writeMicroseconds(12, 2000);//x2
pwm.writeMicroseconds(15, topulse1(84)); //1.end: vị trí chờ giá trị sw
delay(1000);
} //--------------------------------------
void gapvat() {
27
delay(20);
ty1 = 900;
x2 = 2000;
z1 = topulse1(87);
pwm.setPWM(0, 0, topulse(123)); //mo kep
delay(500);
delay(1000);
for (z2; z2 <= topulse(168); z2++) pwm.setPWM(0, 0, z2); //kep vat
delay(1000); // gap vat len
for (ty1; ty1 < 1600; ty1++) {
pwm.writeMicroseconds(8, ty1);
delay(3);
}
for (ty1; ty1 >= 900; ty1--) {
pwm.writeMicroseconds(12, x2);
pwm.writeMicroseconds(8, ty1);
x2++;
delay(1);
}
for (x2; x2 <= 1600; x2++) {
pwm.writeMicroseconds(12, x2);
delay(3);
}
for (x2; x2 <= 2000; x2++) {
pwm.writeMicroseconds(12, x2);
delay(4);
}
} //------------------------------------------------------------------------
void tha_vat_pham(int goc) {
y2 = 600;
delay(20);
x2 = 2000;
28
if (goc > topulse1(87)) { //quay start
delay(20);
for (x1 = topulse1(84); x1 <= goc; x1++) {
pwm.writeMicroseconds(15, x1);
delay(1);
}
} else if (goc < topulse1(87)) {
delay(20);
for (x1 = topulse1(84); x1 >= goc; x1--) {
pwm.writeMicroseconds(15, x1);
delay(1);
}
} //quay end
if (vitri == 1) { //Red
delay(500);
for (x2; x2 >= 1800; x2--) {
pwm.writeMicroseconds(12, x2);
delay(2);
}
for (ty1; ty1 < 1200; ty1++) {
pwm.writeMicroseconds(12, x2);
pwm.writeMicroseconds(8, ty1);
x2--;
delay(1);
}
for (x2; x2 >= 1500; x2--) {
pwm.writeMicroseconds(12, x2);
delay(2);
}
for (y2; y2 <= 650; y2++) {
pwm.writeMicroseconds(8, ty1);
pwm.writeMicroseconds(7, y2);
ty1--;
delay(1);
}
for (ty1; ty1 >= 1000; ty1--) {
pwm.writeMicroseconds(8, ty1);
delay(3);
}
delay(500);
for (z2; z2 > topulse(123); z2--) pwm.setPWM(0, 0, z2); //mo kep
delay(1000);
for (ty1; ty1 <= 1200; ty1++) {
pwm.writeMicroseconds(8, ty1);
delay(4);
}
for (y2; y2 >= 600; y2--) {
29
pwm.writeMicroseconds(8, ty1);
pwm.writeMicroseconds(7, y2);
ty1++;
}
for (x2; x2 <= 1700; x2++) {
pwm.writeMicroseconds(12, x2);
delay(4);
}
for (ty1; ty1 >= 900; ty1--) {
pwm.writeMicroseconds(12, x2);
pwm.writeMicroseconds(8, ty1);
x2++;
delay(3);
}
30
}
for (x2; x2 <= 1450; x2++) {
pwm.writeMicroseconds(12, x2);
delay(2);
}
for (x2; x2 <= 2000; x2++) {
pwm.writeMicroseconds(8, ty1);
pwm.writeMicroseconds(12, x2);
ty1--;
delay(1);
}
for (ty1; ty1 >= 900; ty1--) {
pwm.writeMicroseconds(8, ty1);
delay(2);
}
} else if (vitri == 3) { //GREEN
for (x2; x2 >= 1850; x2--) {
pwm.writeMicroseconds(12, x2);
delay(3);
}
for (ty1; ty1 <= 1700; ty1++) {
pwm.writeMicroseconds(12, x2);
pwm.writeMicroseconds(8, ty1);
x2--;
delay(1);
}
for (y2; y2 <= 650; y2++) {
pwm.writeMicroseconds(7, y2);
delay(2);
}
for (ty1; ty1 >= 1550; ty1--) {
pwm.writeMicroseconds(8, ty1);
delay(3);
}
delay(500);
for (z2; z2 > topulse(123); z2--) pwm.setPWM(0, 0, z2); //mo kep
delay(1000);
for (ty1; ty1 <= 1800; ty1++) {
pwm.writeMicroseconds(8, ty1);
delay(4);
}
for (y2; y2 >= 600; y2--) {
pwm.writeMicroseconds(8, ty1);
pwm.writeMicroseconds(7, y2);
ty1--;
}
for (ty1; ty1 >= 900; ty1--) {
pwm.writeMicroseconds(12, x2);
31
pwm.writeMicroseconds(8, ty1);
x2++;
}
for (x2; x2 <= 2000; x2++) {
pwm.writeMicroseconds(12, x2);
delay(1);
}
}
digitalWrite(led_red, 0);
digitalWrite(led_yellow, 0);
digitalWrite(led_blue, 0);
if (goc > topulse1(84)) { //quay start
for (x1 = goc; x1 >= topulse1(84); x1--) {
pwm.writeMicroseconds(15, x1);
delay(1);
}
} else if (goc < topulse1(84)) {
for (x1 = goc; x1 <= topulse1(84); x1++) {
pwm.writeMicroseconds(15, x1);
delay(1);
}
} //quay end
} //----------------------------------------------------------------
void setup() {
Serial.begin(9600);
Serial.println("8 channel Servo test!");
pinMode(sw1, INPUT_PULLDOWN);
pinMode(sw2, INPUT_PULLDOWN);
pinMode(sw3, INPUT_PULLDOWN);
pinMode(led_red, OUTPUT);
pinMode(led_blue, OUTPUT);
pinMode(led_yellow, OUTPUT);
pwm.begin();
pwm.setOscillatorFrequency(27000000);
pwm.setPWMFreq(SERVO_FREQ); // Analog servos run at ~50 Hz updates
delay(10);
}
void loop() {
if (digitalRead(sw1) == 1) { //mau1
delay(20);
if (digitalRead(sw1) == 1) {
if (vitri != 1) {
digitalWrite(led_red, 1);
vitri = 1;
32
Serial.println("Red");
diemcho();
gapvat();
tha_vat_pham(430);
}
}
while (digitalRead(sw1) == 1)
;
}
if (digitalRead(sw2) == 1) { //mau2
delay(20);
if (digitalRead(sw2) == 1) {
if (vitri != 2) {
digitalWrite(led_blue, 1);
vitri = 2;
Serial.println("Blue");
diemcho();
gapvat();
tha_vat_pham(430);
}
}
while (digitalRead(sw2) == 1)
;
}
if (digitalRead(sw3) == 1) { //mau3
delay(20);
if (digitalRead(sw3) == 1) {
if (vitri != 3) {
digitalWrite(led_yellow, 1);
vitri = 3;
Serial.println("Green");
diemcho();
gapvat();
tha_vat_pham(430);
}
}
while (digitalRead(sw3) == 1)
;
}
vitri = 0;
}
33
III. Tài liệu tham khảo
https://www.berubco.com.vn/he-thong-phan-loai-san-pham.html
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
34