CHƯƠNG I : TỔNG QUAN VỀ ĐỀ TÀI 1. Lý do chọn đề tài Với sự phát triển của xã hội, khoa học kĩ thuật nói chung và vi điều khiển nói riêng ngày càng được ứng dụng ở hầu hết các lĩnh vực. Trong nhiều lĩnh vực được quan tâm, có một lĩnh vực về vi điều khiển được quan tâm rất nhiều hiện nay đó là vi điều khiển AVR. Một trong số những biến thể phổ biến của AVR là Arduino.
Việc tìm hiểu và ứng dụng hết khả năng của nhiều loại Arduino là cả một quá trình dài lý thú và hữu ích, vì sự thuận tiện, tinh gọn, khả năng phát triển cũng như sự đa dạng các dòng sản phẩm phù hợp nhiều quy mô ứng dụng của nó. Một ý tưởng khác được quan tâm đông đảo trên các diễn đàn học tập ngành điện tử và tự động hóa, nhưng chưa có một tài liệu chính thống phổ biến hướng dẫn hay cung cấp thông tin về nó, cũng như chưa được giảng dạy ở nhiều trung tâm đó là ứng dụng Arduino trong sản xuất. Trước thực tiễn ấy, em đã quyết định chọn đề tài này nhằm tìm hiểu về vấn đề đếm và phân loại sản phẩm qua ứng dụng của Arduino. Mục tiêu - Tìm hiểu và nghiên cứu về kit Arduino, cảm biến tiệm cận , màn hình LCD , động cơ servo, relay, mạch giảm áp… - Đo và xuất dữ của 3 cảm biến tiệm cận lên màn hình giao tiếp Serial.
Mô phỏng trên phần mềm Proteus. - Đếm sản phẩm theo từng sản phẩm: sản phẩm cao, sản phẩm trung bình và sản phẩm thấp. - Điều khiển động cơ để đẩy sản phẩm vào thùng. -Thiết kế hoàn chỉnh mô hình thực tế.
-Tiến hành chạy thử nghiệm mô hình hệ thống. Giới hạn đề tài Trong phạm vi đồ án này, em xin trình bày sơ lược về cấu tạo cũng như nguyên lý hoạt động của mô hình phân loại và đếm sản phẩm theo chiều cao sử dụng Arduino Uno R3, cảm biến tiệm cận. Nguyên lý hoạt động : Cho sản phẩm vào đầu băng tải, các cảm biến tiệm cận sẽ quét chiều cao sản phẩm ấy, và cho đi qua đến khi cảm biến tiệm cận tương ứng phát hiện vật, servo sẽ đẩy sản phẩm vào thùng hàng đợi sẵn , đồng thời đếm sản phẩm và hiển thị lên LCD. 11 CHƯƠNG II CƠ SỞ LÝ THUYẾT VỀ CÁC LINH KIỆN 1.Tổng quan về ardiuno 1.1 Tổng quan Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy.
Cái tên "Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường xuyên gặp mặt. Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn ngữ riêng. Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung trên một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân. Và Wiring lại là một biến thể của C/C++.
Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++. Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã làm việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mã nguồn mở. một trong số các nhà nghiên cứu là David Cuarlielles, đã phổ biến ý tưởng này. Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành.
Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở). Người ta ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới tay người dùng. Phần cứng Arduino gốc được sản xuất bởi công ty Italy tên là Smart Projects. Một vài board dẫn xuất từ Arduino cũng được thiết kế bởi công ty của Mỹ tên là 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: 12 1.2 Giới thiệu về ardiuno uno 1.1 Giới thiệu "Uno" có nghĩa là một bằng tiếng Ý và được đặt tên để đánh dấu việc phát hành sắp tới của Arduino 1. Uno và phiên bản 1.0 sẽ là phiên bản tài liệu tham khảo của Arduino. Uno là mới nhất trong các loại board Arduino, và các mô hình tham chiếu cho các nền tảng Arduino. Arduino Uno là một “hội đồng quản trị” dựa trên ATmega328.
Nó có 14 số chân đầu vào / đầu ra, 6 đầu vào analog, 16 MHz cộng hưởng gốm, kết nối USB, một jack cắm điện, một tiêu đề ICSP, và một nút reset. Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển; chỉ cần kết nối nó với máy tính bằng cáp USB hoặc cấp điện cho nó để bắt đầu. Arduino Uno đi kèm với giao diện USB tức là cổng USB được thêm vào bo mạch Arduino để phát triển giao tiếp nối tiếp với máy tính. Bộ vi điều khiển Atmega328 sử dụng trên bo mạch đi kèm với một số tính năng như hẹn giờ, bộ đếm, ngắt, chân PWM, CPU, chân I / O và dựa trên xung nhịp 16 MHz giúp tạo ra nhiều tần số và số lệnh hơn trong mỗi chu kỳ.
Đây là một nền tảng mã nguồn mở, nơi mọi người có thể sửa đổi và tối ưu hóa bảng dựa trên số lượng hướng dẫn và nhiệm vụ muốn đạt được. Arduino đi kèm với một tính năng điều chỉnh tích hợp giúp giữ điện áp trong tầm kiểm soát khi thiết bị được kết nối với thiết bị bên ngoài. Chân reset trên Arduino để thiết lập lại toàn bộ và đưa chương trình đang chạy trở về ban đầu. Chân reset này hữu ích khi Arduino bị treo khi đang chạy chương trình Có 14 chân I / O digital và 6 chân analog được tích hợp trên Arduino cho phép kết nối bên ngoài với bất kỳ mạch nào với Arduino.
Các chân này cung cấp sự linh hoạt và dễ sử dụng cho các thiết bị bên ngoài có thể được kết nối thông qua các chân này. 6 chân analog được đánh dấu là A0 đến A5 và có độ phân giải 10 bit. Các chân này đo từ 0 đến 5V, tuy nhiên, chúng có thể được cấu hình ở phạm vi cao bằng cách sử dụng chức năng analogReference () và chân ISF. Bộ nhớ flash 13KB được sử dụng để lưu trữ số lượng hướng dẫn dưới dạng mã.
Chỉ cần nguồn 5V để sử dụng với Arduino, hoặc lấy nguồn trực tiếp từ cổng USB. Arduino có thể hỗ trợ nguồn điện bên ngoài lên đến 12 V có thể được điều chỉnh và giới hạn ở mức 5 V hoặc 3,3 V dựa trên yêu cầu của projects. 13 Hình 2-2 Arduino uno Uno khác với tất cả các phiên bản trước ở chỗ nó không sử dụng các FTDI chip điều khiển USB-to-serial. Thay vào đó, nó có tính năng Atmega 16U2 lập trình như là 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. • Atmega 16U2 thay thế 8U2.2 Cấu trúc và thông số Hình 2-1 Sơ đồ chân ardiuno uno Có một số chân I / O Digital và analog được đặt trên bo mạch hoạt động ở mức logic 5V với dòng từ khoảng từ 20mA đến 40mA Thông số kỹ thuật: ► Chíp ATMEGA328P-PU ► Nguồn Cấp : 7-12V ► Dòng Max chân 5V : 500mA ► Dòng Max 3.3V : 50mA ► Dòng Max Chân I/O : 30mA ►14 Chân Digital I/O (6 chân PWM) ►6 Chân Analog Inputs ► 32k Flash Memory ► 16Mhz Clock Speed ► SRAM 2 KB EEPROM 1 KB ► Đèn LED : Arduino Uno đi kèm với đèn LED tích hợp được kết nối thông qua chân 13.
Cung cấp mức logic HIGH tương ứng ON và LOW tương ứng tắt. 15 ► Vin : Đây là điện áp đầu vào được cung cấp cho board mạch Arduino. Khác với 5V được cung cấp qua cổng USB. Pin này được sử dụng để cung cấp điện áp toàn mạch thông qua jack nguồn, thông thường khoảng 7-12VDC ► 5V : Chân 5V được sử dụng để cung cấp điện áp đầu ra.
Arduino được cấp nguồn bằng ba cách đó là USB, chân Vin của bo mạch hoặc giắc nguồn DC. ► USB : Hỗ trợ điện áp khoảng 5V trong khi Vin và Power Jack hỗ trợ dải điện áp trong khoảng từ 7V đến 20V. ► GND : Chân mass chung cho toàn mạch Arduino ► Reset : Chân reset để thiết lập lại về ban đầu ► IOREF : Chân này rất hữu ích để cung cấp tham chiếu điện áp cho Arduino ► PWM : PWM được cung cấp bởi các chân 3,5,6,9,10, 11. Các chân này được cấu hình để cung cấp PWM đầu ra 8 bit.
► SPI : Chân này được gọi là giao diện ngoại vi nối tiếp. Các chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) cung cấp liên lạc SPI với sự trợ giúp của thư viện SPI. ► AREF : Chân này được gọi là tham chiếu tương tự, được sử dụng để cung cấp điện áp tham chiếu cho các đầu vào tương tự. ► TWI : Chân Giao tiếp TWI được truy cập thông qua thư viện dây.
Chân A4 và A5 được sử dụng cho mục đích này. ► Serial Communication :Giao tiếp nối tiếp được thực hiện thông qua hai chân 0 (Rx) và 1 (Tx). ► Rx : Chân này được sử dụng để nhận dữ liệu trong khi chân Tx được sử dụng để truyền dữ liệu. ► External Interrupts (Ngắt ngoài) : Chân 2 và 3 được sử dụng để cung cấp các ngắt ngoài.3 Extension shield Hình 2-2 Bo mở rộng của ardiuno Arduino cũng sử dụng chip AVR của Atmel làm nền tảng, thế nê n hầu hết cái gì PIC/AVR làm được thì Arduino làm được.
Nếu muốn điều khiển động cơ, sẽ có các mạch công suất tương thích hoàn toàn với Arduino. Nếu muốn điều khiển qua mạng Internet, cũng có một mạch Ethernet/Wifi tương thích hoàn toàn với Arduino. Và còn rất nhiều thứ khác nữa. Các shield này giúp tăng tính linh hoạt của Arduino Hình 2-3 Các mạch mở rộng của ardiuno 2.Cảm biến hồng ngoại e18-d80nk 2.