Đăng ký Đăng nhập
Trang chủ Phân loại sản phẩm theo màu sắc...

Tài liệu Phân loại sản phẩm theo màu sắc

.DOC
53
1
50

Mô tả:

Đề tài: Phân loại sản phẩm theo mã vạch I. II. III. Tổng quan các dây truyền phân loại sản phẩm Mã vạch và ứng dụng Giải pháp và mô hình dây truyền 1. Các Modul cho 1 hệ thống phân loại. 2. Mô hình dây truyền phân loại sản phẩm. IV. Thiết kế các Modul 1. Băng tải: Có nhiệm vụ vận chuyển sản phẩm hay hàng hoá đến các vị trí kiểm tra phân loại lưu kho ... 2. Robot: Trong mô hình này chúng em sử dụng 1 robot 2 bậc tự do để loại sản phẩm. Vật A sau khi đi qua băng truyền và được kiểm tra phân loại, vật được dừng lại tại vị trí đặt cảm biến. Tay robot có nhiệm vụ là gắp vật A ra khỏi băng truyền, đặt vào kho chứa. Tay robot làm việc theo tọa độ trục Decats : A(,z). 2 bậc tự do :   : quay quanh truc z  z : lên xuống theo truc z Nguyên lý làm việc : Khi vật A đi đến vị trí đặt cảm biến và dừng lại tại đó, tay robot từ vị trí Height (đặt công tắc hành trình) di chuyển xuống vị trí Low (đặt công tắc hành trình) cũng theo trục z tay gắp (đặt công tắc hành trình) gắp vật, nâng vật A lên vị trí height chạm vào công tắc và đồng thời quay thân theo trục z cho đến khi chạm vào công tắc hành trình thì dừng lại  hạ tay robot xuống cho đến khi chạm vào công tắc hành trình tại vị trí Low  nhả vật A rồi quay về vị trí ban đầu tiếp tục cho quá trình gắp vật tiếp theo. 1. Thiết kế :  Quay thân : Dùng động cơ gắn thẳng trục bên dưới tấm Bích tròn Số lượng 2 tấm Bích: - Tấm dưới được bắt cố định - Tấm trên được gắn với động cơ và phần thân robot.  Nâng thân : Di chuyển lên xuống theo trục z. Trục vít được gắn với 1 động cơ và ren trên trục vít được gắn với 1 đai ốc cố định trên tay robot, khi động cơ quay sẽ làm trục vít quay theo đồng thời tay robot được nâng lên or hạ xuống tùy theo chiều quay của động cơ. Tay robot đươc gắn cố định với 2 thanh trượt 2 bên thân robot.  Tay gắp : Cơ cấu gắp nhả cũng dùng trục vít đươc gắn với 1 động cơ nằm trên tay robot..khi động cơ quay thuận thì tay kẹp và ngược lại.  Chän s¬ ®å nguyªn lý vµ kÕt cÊu Robot S¬ ®å nguyªn lý cña Robot ph¶i phï hîp víi c¸c yªu cÇu sau: * ThÓ hiÖn ®Çy ®ñ c¸c chøc n¨ng, bé phËn cña Robot vµ c¸c ®Æc ®iÓm cña tõng lo¹i. * Th©n Robot cã kÕt cÊu phï hîp víi chøc n¨ng lµm viÖc cña Robot. KÕt cÊu ®ñ v÷ng ch¾c ®Ó ®¶m b¶o c«ng suÊt lµm viÖc cña Robot bao gåm, søc n©ng th©n Robot vµ lùc n©ng chi tiÕt khi thao t¸c. Lùc vµ momen qu¸n tÝnh ë tay m¸y. * Cã hÖ thèng ®iÒu khiÓn. * HÖ truyÒn ®éng khÝ nÕn ®èi víi truyÒn ®éng kÑp nh¶ tay m¸y. * HÖ truyÒn ®éng thuû lùc ®Ó truyÒn ®éng theo ph¬ng z vµ ®Èy tay m¸y theo ph¬ng r trong hÖ to¹ ®é M (r,  , z) .. * S¬ ®å hÖ thèng c¬ khÝ ®èi víi truyÒn ®éng quay th©n Robot. Ph©n tÝch víi yªu cÇu cña ®Ò bµi: * Robot lµm viÖc träng hÖ to¹ ®é trô M (r,  , z) nªn lµm viÖc rÊt khoÎ nhng nhîc ®iÓm lµ khã lµm viÖc víi nh÷ng vÞ trÝ s¸t ch©n vµ tÝnh c¬ häc kh«ng cao. * Víi c¬ cÊu truyÒn ®éng nh s¬ ®å ®· cho, ta thÊy r»ng Robot cã thÓ tham gia cïng lóc 2 chuyÓn ®éng chÝnh lµ chuyÓn ®éng tÞnh tiÕn ®ång thêi quay quanh trôc z cña th©n Robot vµ chuyÓn ®éng tÞnh tiÕn ®ång thêi quay theo ph¬ng r cña tay m¸y ®Ó thùc hiÖn viÖc g¾p nh¶ vËt tõ vÞ trÝ A sang vÞ trÝ B. * ThiÕt kÕ Robot nhÊc vËt nÆng ®ßi hái ®é cøng v÷ng nhÊt ®Þnh, hÖ truyÒn ®éng ph¶i t¹o ra ¸p lùc ®ñ lín ®Ó n©ng vµ di rêi vËt. Do ®ã khi thiÕt kÕ cÇn hîp lý ho¸ 1 sè th«ng sè kü thuËt ®Ó ®¶m b¶o yªu cÇu cña bµi to¸n  TÝnh to¸n thiÕt kÕ - Robot n©ng vËt cã khèi lượng mV¢T = 0,5kg. Lùc kÑp vËt ph¶i th¾ng ®ưîc träng lùc cña vËt cÇn n©ng => 2TV¢T> m V . g Chän hÖ sè an toµn = 1,5 => TV¢T= k.mV.g/2 = 1,5.0,5.10/2 = 3,75 (N) Chän : TV¢T= 4(N) MÆt kh¸c ta l¹i cã TV¢T= PV¢T.k.S víi PV¢T: Lùc kÑp cña c¬ cÊu g¾p k: HÖ sè ma s¸t cña tay m¸y vµ vËt (chän b»ng 0,25) S: DiÖn tÝch mÆt tiÕp xóc (Chän b»ng 5cm2) Þ PV¢T = TV¢T/k.S = 3,75/0,25.5 = 3 (N) §iÒu kiÖn ®Ó khi g¾p vËt mµ c¸nh tay robot ®îc gi÷ c©n b»ng : W1 L1 L2=25 WVAT L0=20 ®ßi hái ph¶i ®i t×m L1 khi ®· biÕt L2 25cm Chän ®éng c¬ cã khèi lîng mDC = 0,8kg ®îc l¾p trong kho¶ng L1 (cha biÕt) trªn tay m¸y.  Khi g¾p vËt : W1.L1 = WVAT.L2 Þ L1 = WVAT.L2/ W1 Trong ®ã : W1 = mDC.g = 0,8.10 = 8 (N) WVAT = mV .g = 0,5.10 = 5(N) VËy : L1 = WVAT.L2/ W1 = 5 . 25/8 = 15,7cm khi kh«ng g¾p vËt : W1.L1 = L2 Þ L1 = L2/ W1 = 25/8 = 3,3 cm Þ chiÒu dµi trung b×nh trong 2 trêng hîp trªn :  L1 = (15,6 + 3,3) = 10 cm 3. Mạch động lực điều khiển ROBOT và băng tải o Băng tải: Sử dụng động cơ DC 1 chiều 12V được đấu nối trực tiếp vào chân Q1 của LOGO 1 o Mạch role: Gồm 6 role chia thành 3 cặp nhiệm vụ điều khiển 3 động cơ DC kết nối tới các chuyển động của Robot bao gồm gắp nhả - nâng hạ - quay thân.  Chuyển động quay thân được LOGO 1 điều khiển  Chuyển động Gắp nhả - nâng hạ được LOGO 2 điều khiển 4. Mạch ghép nối máy tính sử dụng chip ATMEGA16L  Nguyên lý:  Lắp dựng: 5. Lập trình: a. Trên thiết bị LOGO: Sử dụng phần mềm LOGO!Soft Comfort V5.0? Các chuyển động của Robot và băng truyền được lập trình thông qua 2 bộ Logo  Logo1 : Điều khiển động cơ băng truyền và chuyển động quay thân của Rôbốt Bảng biến: Start : I1 Stop : I2 Tín hiệu từ máy tính : I3 CTHT gắp : I4 CTHT nhả : I5 CTHT nâng : I6 CTHT vị trí A : I7 CTHT vị trí B : I8 Băng truyền chạy : Q1 Băng truyền dừng : Q2 Thân Robot quay thuận (AB) : Q3 Thân Robot quay ngược (BA) : Q4  Logo2: điều khiển chuyển động nâng hạ thân và gắp nhả của tay Rôbốt Bảng biến: I1: được nối với cổng Q1 và Q2 của hệ bộ Logo1 CTHT gắp : I2 Q1 CTHT nhả : I3 Q2 CTHT nâng : I4 Q3 CTHT hạ : I5 Q4 CTHT vị trí A : I6 CTHT vị trí B : I7 b. Lập trình mạch ghép nối máy tinh: Đã thử nghiệm thành công khi truyền nhân 32 byte từ máy tính xuống và gửi dữ liệu 32 byte từ mạch điều khiển lên Thiết lập cổng vào ra: Khi xem xét đến các cổng I/O của AVR thì ta phải xét tới 3 thanh ghi bit DDxn,PORTxn,PINxn. -Các bit DDxn để truy cập cho địa chỉ xuất nhập DDRx. Bit DDxn trong thanh ghi DDRx dùng để điều khiển hướng dữ liệu của các chân của cổng này.Khi ghi giá trị logic ‘0’ vào bất kì bit nào của thanh ghi này thì nó sẽ trở thành lối vào,còn ghi ‘1’ vào bit đó thì nó trở thành lối ra. -Các bit PORTxn để truy cập tại địa chỉ xuất nhập PORTx. Khi PORTx được ghi giá trị 1 khi các chân có cấu tạo như cổng ra thì điện trở kéo là chủ động(được nối với cổng).Ngắt điện trở kéo ra, PORTx được ghi giá trị 0 hoặc các chân có dạng như cổng ra.Các chân của cổng là 3 trạng thái khi 1 điều kiện reset là tích cực thậm chí xung đồng hồ không hoạt động. -Các bit PINxn để truy cập tại địa chỉ xuất nhập PINx. PINx là các cổng chỉ để đọc,các cổng này có thể đọc trạng thái logic của PORTx.PINx không phải là thanh ghi,việc đọc PINx cho phép ta đọc giá trị logic trên các chân của PORTx.chú ý PINx không phải là thanh ghi,việc đọc PINx cho phép ta đọc giá trị logic trên các chân của PORTx. Nếu PORTxn được ghi giá trị logic ‘1’ khi các chân của cổng có dạng như chân ra ,các chân có giá trị ‘1’.Nếu PORTxn ghi giá trị ‘0’ khi các chân của cổng có dạng như chân ra thì các chân đó có giá trị ‘0’. Các cổng của AVR đều có thể đọc,ghi. Để thiết lập 1 cổng là cổng vào ,ra thì ta tác động tới các bit DDxn, PORTxn,PINxn.ta có thể thiết lập để từng bit làm cổng vào,ra cứ không chỉ với cổng,như vậy ta có thể sử lí tới từng bit,đây chính là điểm mạnh của các dòng Vi điều khiển 8 bit. Ta có thể sử dụng CodeWizardAVR để thiết lập cho các PORTx và Pinx. Ví dụ như trên hình:các bit 0,1,2,4,7 của PORTA làm chân ra có trở kéo,còn các bit còn lại làm chân vào. Khi đã thiết lập xong thì các bit 0,1,2,4,7 sẽ có thể xuất dữ liệu ra còn các bit còn lại có thể nhận dữ liệu vào. Việc thiết lập cổng vào ra là một việc quan trọng vì tùy theo mục đích sử dụng các cổng nào làm cổng vào ra,thì ta phải thiết lập đúng thì mới có thể sử dụng được, động tác này khác với họ vi điều khiển 8051- AT8951. CodeVision: Để tạo Project mới chọn trên menu: File  New được như sau: Chọn Project sau đó click chuột vào OK được cửa sổ hỏi xem có sử dụng Code Winzard không: Chọn Yes được cửa sổ CodeWinzardAVR như sau : Sử dụng chíp AVR nào và thạch anh tần số bao nhiêu ta nhập vào tab Chip. Để khởi tạo cho các cổng IO ta chuyển qua tab Ports. Các chân IO của AVR mặc định trạng thái IN, muốn chuyển thành trạng thái OUT để có thể đưa các mức logic ra ta click chuột vào các nút IN (mầu trắng) để nó chuyển thành OUT trong các Tab Port. Sau đó chọn File Generate, Save and Exit Được cửa sổ yêu cầu nhớ các file của Project. Đây là ví dụ IO nên ta save tên là IO. Sau khi nhớ song 3 file : IO.c – IO.prj – IO.cwp được cửa sổ như sau: Để dịch chương trình ấn F9 hoặc vào menu : Project  Compile.Được cửa sổ Information như sau: Chương trình không có lỗi. Nhấp OK. Để nạp chương trình các bạn cần cấu hình cho mạch nạp. Trong tab After Make các bạn đánh dấu vào Program the Chip và nhấp OK. Nhấn tổ hợp phím Shift + F9 được như hình bên. Cắm Jump mạch nạp vào .Click vào Program. Đợi nạp xong nhổ jump nạp ra ấn Reset để thấy led chạy. Điều khiển I/O với LCD Biết khởi tạo cho LCD với CodeWinzardAVR với bất kỳ cổng nào. Hiển thị ra LCD các ký tự bất kỳ. Ví dụ LCD được nối với PORTB. Chức năng của LCD trong hầu hết các mạch, các bộ điều khiển đảm nhân vai trò hiển thị các thông số, các thông tin mà chúng ta muốn nhập vào hay các thông tin xử lý mà bộ điều khiển đang hoạt động đựoc hiển thị ra màn hình, giúp chúng ta giao tiếp gần hơn với quá trình hoạt đông của hệ thống. Loại LCD mà chúng ta sử dụng là loại SD-DM1602A 2 dòng mổi dòng 16 kí tự, loại này do Trung Quốc sản xuất . Nó có 16 chân như hình vẽ. Trong đó chúng ta có thể thấy 2 chân 1,2 được cấp nguồn cho LCD hoạt động, chân thứ 3 (chân VSS) được nối vào đầu ra của biến trở dùng để điều chỉnh độ tương phản (phải điều chỉnh VSS hợp lý thì LCD mới hiển thị được) 2 chân 15,16 đây là 2 chân cấp nguồn dung để bật đèn của LCD từ chân 4>14 là các chân điều khiển được nối với vi điều khiển, các chân 4,5,6 được để điều khiển hoạt động của LCD, các chân còn lại là 8 bit Data dùng để truyền nhận dữ liệu. Chúng ta có thể giao tiếp Data 8 bit hoặc 4 bit như trong mạch của chúng ta truyền Data dưới dạng 4 bit. Việc truyền dưới dạng 4bit hoặc 8 bit phải được thiết lập cả phần cúng và phần mềm. Các bước khởi tạo trong CodeWinzard như sau: Trong cửa sổ CodeWinzard, chọn tab LCD, trong list mặc định là None, các bạn chuyển thành PORTB cho phù hợp với phần cứng của KIT( thiết kế LCD ở PORTB). Chọn File  Generate, Save and Exit được như sau: Code cho LCD các bạn có thể tham khảo trong Help bằng cách chọn trên menu Help  Help Topic(hoặc ấn F1). Được cửa sổ Help như sau: Trong vòng while(1) trong hàm main ta viết các câu lệnh như sau: while (1) {/ / Place your code here lcd_gotoxy(0,0);// Dua con tro ve goc, dong 0, cot 0 lcd_putsf("DKS-MTC-JACKY");// Hien thi dong chu lcd_gotoxy(0,1);// Dua con tro ve dong 1, cot 0 lcd_putsf("Wellcome you"); // Hien thi dong chu delay_ms(3000); // Tre 3 s lcd_gotoxy(0,0); // Dua con tro ve dong 0 cot 0 lcd_putsf("embestdks.com"); // Hien thi dong chu delay_ms(3000); // Tre 3 s }; Code lập trình truyền nhận dữ liệu với máy tính // ===============Ngat nhan USART============= #define RX_BUFFER_SIZE 32 char rx_buffer[RX_BUFFER_SIZE]; // --- Bo dem nhan rx_buffer[RX_BUFFER_SIZE] #if RX_BUFFER_SIZE<256 unsigned char rx_wr_index,rx_rd_index,rx_counter; #else unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif // This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow; // USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) { char status,data; status=UCSRA; data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
- Xem thêm -

Tài liệu liên quan